微信小程序企业付款到个人
<?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对接微信小程序支付
前言:这里我就假装你已经注册了微信小程序,并且基本的配置都已经好了.注: 个人注册小程序不支持微信支付,所以我还是假装你是企业或者个体工商户的微信小程序,其他的商户号注册,二者绑定,授权,支付开通,就 ...
随机推荐
- tomcat启动之后,Chrome浏览器可以访问,IE不行(IE无法访问8080 端口)
方法简单粗暴,在windows中关闭IE服务,然后再重新安装服务. 请注意,在输入框输入: http://localhost:8080/myproject 不要直接输入localhost:8080/ ...
- codeforces#572Div2 D1---Add On A Tree【思维】
题目:http://codeforces.com/contest/1189/problem/D1 题意:给定一棵树,可以选择任意两个叶子节点对他们的路径增加一定的权值. 问对于给定的这棵树,是否可以得 ...
- 树莓派远程桌面--使用windows自带的远程桌面软件mstsc.exe
步骤: 1.使用SSH登录树莓派 2.安装xrdp服务: sudo apt-get install xrdp 3.在Windows下打开命令框运行:mstsc 4.登录树莓派桌面 5.登录成功
- 067_查看 KVM 虚拟机中的网卡信息(不需要进入启动或进入虚拟机)
#!/bin/bash #该脚本使用 guestmount 工具,可以将虚拟机的磁盘系统挂载到真实机文件系统中#Centos7.2 中安装 libguestfs-tools-c 可以获得 guestm ...
- asp.net利用webuploader实现超大文件分片上传、断点续传
ASP.NET上传文件用FileUpLoad就可以,但是对文件夹的操作却不能用FileUpLoad来实现. 下面这个示例便是使用ASP.NET来实现上传文件夹并对文件夹进行压缩以及解压. ASP.NE ...
- break,continue,return的区别 x
这三个东西特别坑,一定要记准了!! 1)break 直接跳出当前的循环,从当前循环外面开始执行,忽略循环体中任何其他语句和循环条件测试.他只能跳出一层循环: 注意:如果你的循环是嵌套循环,那么 ...
- Django系列(一):前期准备
1.web应用 Web应用程序是一种可以通过web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件.应用程序有两种模式C/S.B/S.C/S是客户端 ...
- List集合类
1.1: List.add方法——向集合列表中添加对象 public static void main(String[] args) { List<String> list=new Ar ...
- 洛谷P1419寻找段落
题目 单调队列+前缀和 #include <bits/stdc++.h> #define N 101001 using namespace std; int n, s, t; int da ...
- P1850 换教室——期望DP
题目描述 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程. 在可以选择的课程中,有 2n2n2n 节课程安排在 nnn 个时间段上.在第 iii(1≤i≤n1 \leq i ...