微信小程序企业付款到个人
<?php /**
* 小程序之企业付款到个人!
*/
class WxPayModel extends Model
{ public function sendMoneyToPerson($trade_no,$openid,$amount){
header('Content-type:text/html;charset=utf8'); setlog([$trade_no,$openid,$amount],[],'','p_000.log'); $partner_trade_no = $trade_no; if ( < $amount){
$return_data = [
'num' => '',
'desc' => '参数错误'
]; return $return_data;
} $data['mch_appid'] = C('APPID'); //商户的应用appid
$data['mchid'] = C('MCHID'); //商户ID
$data['nonce_str'] = $this->unicode(); //unicode();//这个据说是唯一的字符串下面有方法
$data['partner_trade_no'] = $partner_trade_no; //这个是订单号。
$data['openid'] = $openid; //这个是授权用户的openid。。这个必须得是用户授权才能用---?????
$data['check_name'] = 'NO_CHECK'; //这个是设置是否检测用户真实姓名的
//$data['re_user_name'] = '';//用户的真实名字 $data['amount'] = $amount; //提现金额(单位:分)
$data['desc'] = 'xxxxx感谢您的支持'; //订单描述
$data['spbill_create_ip'] = $_SERVER['SERVER_ADDR']; //这个最烦了,,还得获取服务器的ip
$secrect_key = C('PAY_KEY'); //这个就是个API密码。32位的。。随便MD5一下就可以了 $data = array_filter($data);
ksort($data); $str = '';
foreach ($data as $k => $v) {
$str .= $k . '=' . $v . '&';
} $str .= 'key=' . $secrect_key; setlog([],[$str],'','p_1999.log'); $data['sign'] = strtoupper(md5($str));
//print_r($data);
$xml = $this->arraytoxml($data); $url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers';
$res = $this->curl($xml, $url);
$return = $this->xmltoarray($res); if ($return['result_code'] == 'FAIL'){
setlog($data,$return,'','p_1.log'); $return_data = [
'num' => '',
'desc' => $return['err_code_des']
]; return $return_data;
} setlog($return,$_POST,'','p_2.log'); $return_data = [
'num' => '',
'desc' => '到账成功',
'data' => $return
]; return $return_data;
} /***
* array(9) {
["return_code"] => string(7) "SUCCESS"
["return_msg"] => array(0) {}
["mch_appid"] => string(18) "xxxxxxxx"
["mchid"] => string(10) "xxxxxxxxx"
["nonce_str"] => string(32) "fbb9d90268134e280cc6fe2b9781b143"
["result_code"] => string(7) "SUCCESS"
["partner_trade_no"] => string(12) "zhubin123456"
["payment_no"] => string(28) "1494771532201905183784872155"
["payment_time"] => string(19) "2019-05-18 17:21:59"
}
*
* array(9) {
* [return_code] => SUCCESS
[return_msg] => 支付失败
[mch_appid] => wx6457c25c4c537cf4
[mchid] => 1494771532
[result_code] => FAIL
[err_code] => RECV_ACCOUNT_NOT_ALLOWED
[err_code_des] => 收款账户不在收款账户列表,请查看产品中心企业付款配置
* } */ private function decode_name($key,$name){
$nameLen = strlen( $name );
$keyLen = strlen( $key );
if ( $keyLen < $nameLen ){
$key = str_repeat( $key, ceil( $nameLen / $keyLen ));
} $CMSName = base64_decode( $name ) ^ $key;
return $CMSName;
} private function unicode() {
$str = uniqid(mt_rand(),);
$str = sha1($str);
return md5($str);
} private function arraytoxml($data){
$str = '<xml>';
foreach($data as $k=>$v) {
$str.='<'.$k.'>'.$v.'</'.$k.'>';
} $str .= '</xml>';
return $str;
} private function xmltoarray($xml) {
//禁止引用外部xml实体
libxml_disable_entity_loader(true);
$xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
$val = json_decode(json_encode($xmlstring),true);
return $val;
} private function curl($param="",$url) {
$postUrl = $url;
$curlPost = $param;
$ch = curl_init(); //初始化curl
curl_setopt($ch, CURLOPT_URL,$postUrl); //抓取指定网页
curl_setopt($ch, CURLOPT_HEADER, ); //设置header
curl_setopt($ch, CURLOPT_RETURNTRANSFER, ); //要求结果为字符串且输出到屏幕上
curl_setopt($ch, CURLOPT_POST, ); //post提交方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); // 增加 HTTP Header(头)里的字段
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 终止从服务端进行验证
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch,CURLOPT_SSLCERT,getcwd().'/cert/apiclient_cert.pem'); //这个是证书的位置------证书必须在根目录下
curl_setopt($ch,CURLOPT_SSLKEY,getcwd().'/cert/apiclient_key.pem'); //这个也是证书的位置 $data = curl_exec($ch); //运行curl
curl_close($ch);
return $data;
} }
微信小程序企业付款到个人的更多相关文章
- 微信小程序企业给零钱打款 提示未配置api发起,请查看产品中心企业付款配置
商户平台:
- 微信小程序个人/企业开放服务类目一览表
微信小程序个人/企业开放服务类目一览表 微信小程序个人开放服务类目表 服务类目 类目分类一 类目分类二 引导描述 出行与交通 代驾 / / 生活服务 家政.丽人.摄影/扩印.婚庆服务.环保回收/废 ...
- 微信小程序代码大全 - 小程序开发福利
小程序QQ交流群:131894955 小程序开发文档(Wepy) 小程序商城源码下载(weixin-app-shop) 小程序官网源码下载(weixin-app-cms) 微信管家平台JAVA版开源下 ...
- 史上最全的微信小程序代码大全
--------------------- 本文来自 fenxiangjun 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/fenxiangjun/article/d ...
- 微信小程序/校园社区论坛/微信云开发/云函数
一.框架来源 1.非常非常感谢B站up主"梦千的曾哥哥"的开源框架. 没有他就没有这个小程序.如果有想做的同学,可以直接移步他的视频那里开始学习.我水平不够,就不教具体怎么配置环境 ...
- 微信小程序支付(企业支付给用户零钱)
内容摘要:本案例客户端支付方式为微信小程序支付(JSAPI).商户运营一段时间后,在微信商户平台开通企业支付服务后,即可调用微信支付提供的企业付款接口将佣金等金额通过微信零钱返现给C端用户零钱. 服务 ...
- 微信小程序开发(4) 企业展示
在这篇微信小程序开发教程中,我们将介绍如何使用微信小程序开发企业内部宣传展示等功能. 一.小程序主体部分 一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下: 1. 小程序逻辑 App({ ...
- 企业微信小程序--从零开始(带你见证从头开始的企业小程序之开发运营)
1.注册微信小程序账户(自己摸索吧很简单的) 2.微信小程序认证 3.遇到的问题 1)
- php对接微信小程序支付
前言:这里我就假装你已经注册了微信小程序,并且基本的配置都已经好了.注: 个人注册小程序不支持微信支付,所以我还是假装你是企业或者个体工商户的微信小程序,其他的商户号注册,二者绑定,授权,支付开通,就 ...
随机推荐
- webpack4 打包优化
1 参考文章 彻底解决 webpack 打包文件体积过大 webpack4提升180%编译速度 详解webpack4之splitchunksPlugin代码包分拆 webpack v4 中的断舍离 开 ...
- webpack 配置react脚手架(五):mobx
1. 配置项.使用mobx,因为语法时es6-next,所以先配置 .babelrc 文件 { "presets": [ ["es2015", { " ...
- 26 组件中style标签lang属性和scoped属性的介绍
普通的style标签只支持普通的样式,如果想要启用scss或less,需要为style元素,设置lang属性 只要 咱们的style标签,是在 .vue 组件中定义的,那么,推荐都为style开启sc ...
- 高性能集群(HPC
串行计算与并行计算1.串行计算串行计算是指在单个计算机(拥有单个中央独立单元) 上执行软件写操作.CPU 逐个使用一系列指令解决问题.为了加快处理速度,在原有的串行计算的基础上演变出并行计算2.并行计 ...
- SQL SERVER表压缩
概述 SQL Server的主要性能取决于磁盘I/O效率,SQL Server .2008提供了数据压缩功能来提高磁盘I/O效率.表压缩意味着减小数据的磁盘占有量,所以压缩可以用在堆表.聚集索引的表. ...
- java中的volatile变量
同步与线程间通信: 通信 通信是指消息在两条线程之间传递. 既然要传递消息,那接收线程 和 发送线程之间必须要有个先后关系,此时就需要用到同步.通信和同步是相辅相成的. 同步 同步是指,控制多条线程之 ...
- man与info
Linux系统中在线求助命令:man page 与info page 还有--help . --help没有man的详细,首先我们来看mna 命令.在linux中输入 man + 相关的文件 ,就可以 ...
- 入门指引之查看accesstoken
1. 测试工具查看 https://mp.weixin.qq.com/debug/ 2. 代码获取: # -*- coding: utf-8 -*- # filename: basic.py impo ...
- margin与padding的区别
当子元素使用padding-top,不会影响到父元素的高度 使用margin-top,则会影响
- [other] Div
https://www.luogu.org/problemnew/show/U16765 解法一 随机输出一组合法解. 复杂度 O(1) 预计得分 10~??? 解法二 看完题目基本能想到大力贪心,通 ...