微信小程序企业付款到个人
<?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对接微信小程序支付
前言:这里我就假装你已经注册了微信小程序,并且基本的配置都已经好了.注: 个人注册小程序不支持微信支付,所以我还是假装你是企业或者个体工商户的微信小程序,其他的商户号注册,二者绑定,授权,支付开通,就 ...
随机推荐
- 0020SpringBoot使用SpringCloud中的eureka实现远程调用
要实现远程调用,主要需要三个module:一个注册中心.一个服务提供者.一个服务消费者,然后进行各自的配置和编码,详细内容如下: 1.建一个空的project,创建3各module a.注册中心模块 ...
- Springboot简单集成ActiveMQ
Springboot简单集成ActiveMQ 消息发送者的实现 pom.xml添加依赖 <dependency> <groupId>org.springframework.bo ...
- Git 相关使用
https://www.cnblogs.com/mengdd/p/3447464.html 删除本地 & 远程 的分支. 删除本地分支 命令行 : $ git branch -d < ...
- 10月清北学堂培训 Day 1
今天是杨溢鑫老师的讲授~ T1 1 题意: n * m 的地图,有 4 种不同的地形(包括空地),6 种不同的指令,求从起点及初始的状态开始根据指令行动的结果. 2 思路:(虽然分了数据范围但是实际上 ...
- Django基础之创建admin账号
1. 首先我们要新建一个用户名, 用来登录管理网站,可以使用如下命令: python manage.py createsuperuser 2. 输入想要使用的用户名: Username(leave b ...
- python smbus IOError: [Errno 2] No such file or directory
1.打开配置文件 sudo nano /boot/config.txt 打开以下选项 "dtparam=i2c_arm=on" ctrl + o 保存 ctrl + x 退出 2. ...
- 快速打造自己的PHPStorm主题
---恢复内容开始--- 一个优雅和舒适的界面,可以增加过多写入代码的动力. Phpstorm小型的白色主题比较简陋.为了打造一个优雅和舒适的界面,我们安装一件叫Material Theme UI的插 ...
- ZR#997
ZR#997 解法: 找找规律就出来了,全场最简单的一道题. CODE: #include<iostream> #include<cstdio> #include<cst ...
- Ubuntu16.04 apache2+php7.0+mysql5.7环境搭建
今天配置一下web环境,很常见的apache+php+mysql的网站环境: 步骤一:安装apache sudo apt install apache2 步骤二:安装php7 1.安装PHP7和响应的 ...
- Centos 7设置静态IP,修改时区,关闭防火墙
Centos 7设置静态IP # vi /etc/sysconfig/network-scripts/ifcfg-enxxx BOOTPROTO="static" ...... I ...