php收付同分账,php微信分账功能 —— app支付
/**
* 微信分账功能
* $out_order_no 系统自定义的单号
* $transaction_id 微信支付单号
* $profitSharingAccounts array 分账接收方
*
*/
public function ProfitShare($out_order_no, $transaction_id, $profitSharingAccounts)
{
$result = array();
$result[‘status‘] = false;
$result[‘message‘] = ‘未知错误!‘;
if ($out_order_no == ‘‘) {
$result[‘message‘] = ‘系统单号为空!‘;
}
if ($transaction_id == ‘‘) {
$result[‘message‘] = ‘支付单号为空!‘;
}
$url = ‘https://api.mch.weixin.qq.com/secapi/pay/profitsharing‘;
//添加请求xml
$xmlArr = array();
$xmlArr[‘appid‘] = config(‘jshop.service_wechatgzh_appid‘);
$xmlArr[‘mch_id‘] = config(‘jshop.service_wechatpay_mch_id‘);
$xmlArr[‘out_order_no‘] = $out_order_no;
$xmlArr[‘transaction_id‘] = $transaction_id;
$xmlArr[‘nonce_str‘] = $this->getNonceStr();
$xmlArr[‘sign_type‘] = ‘HMAC-SHA256‘;
$xmlArr[‘receivers‘] = json_encode($profitSharingAccounts);
$sign = $this->makeSignBySHA($xmlArr);
$xmlArr[‘sign‘] = $sign;
$XmlStr = $this->toXml($xmlArr);
$res = $this->postXmlCurl($XmlStr, $url, true);
$res = $this->fromXml($res);
if ($res[‘return_code‘] == ‘SUCCESS‘) {
$result[‘status‘] = true;
$result[‘message‘] = ‘查询成功!‘;
}
return $result;
}
/**
* 查询分账结果
* $out_order_no 系统自定义的单号
* $transaction_id 微信支付单号
*/
public function ProfitsharingQuery($out_order_no, $transaction_id)
{
$result = array();
$result[‘status‘] = false;
$result[‘message‘] = ‘未知错误!‘;
if ($out_order_no == ‘‘) {
$result[‘message‘] = ‘系统单号为空!‘;
}
if ($transaction_id == ‘‘) {
$result[‘message‘] = ‘支付单号为空!‘;
}
$url = ‘https://api.mch.weixin.qq.com/pay/profitsharingquery‘;
$xmlArr = array();
$xmlArr[‘mch_id‘] = config(‘jshop.service_wechatpay_mch_id‘);
$xmlArr[‘out_order_no‘] = $out_order_no;
$xmlArr[‘transaction_id‘] = $transaction_id;
$xmlArr[‘nonce_str‘] = $this->getNonceStr();
$xmlArr[‘sign_type‘] = ‘HMAC-SHA256‘;
$sign = $this->makeSignBySHA($xmlArr);
$xmlArr[‘sign‘] = $sign;
$XmlStr = $this->toXml($xmlArr);
$res = $this->postXmlCurl($XmlStr, $url);
$res = $this->fromXml($res);
$result[‘data‘] = $res;
if ($res[‘return_code‘] == ‘SUCCESS‘ && $res[‘result_code‘] == ‘SUCCESS‘) {
$result[‘status‘] = true;
$result[‘message‘] = ‘查询成功!‘;
}
return $result;
}
/**
* 添加分账方
*/
public function ProfitSharingAddReceiver($profitSharingAccounts)
{
$result = array();
$result[‘status‘] = false;
$result[‘message‘] = ‘未知错误!‘;
if (count($profitSharingAccounts) == 0) {
$result[‘message‘] = ‘分账接收为空!‘;
return $result;
}
$url = ‘https://api.mch.weixin.qq.com/pay/profitsharingaddreceiver‘;
//添加请求xml
$xmlArr = array();
$xmlArr[‘appid‘] = config(‘jshop.service_wechatgzh_appid‘);
$xmlArr[‘mch_id‘] = config(‘jshop.service_wechatpay_mch_id‘);
$xmlArr[‘nonce_str‘] = $this->getNonceStr();
$xmlArr[‘sign_type‘] = ‘HMAC-SHA256‘;
$xmlArr[‘receiver‘] = json_encode($profitSharingAccounts);
$sign = $this->makeSignBySHA($xmlArr);
$xmlArr[‘sign‘] = $sign;
$XmlStr = $this->toXml($xmlArr);
$res = $this->postXmlCurl($XmlStr, $url);
var_dump($res);
}
/**
* 删除分账方
* profitSharingAccounts 分账方数组
*/
public function ProfitSharingRemoverEceiver($profitSharingAccounts)
{
$result = array();
$result[‘status‘] = false;
$result[‘message‘] = ‘未知错误!‘;
if (count($profitSharingAccounts) == 0) {
$result[‘message‘] = ‘分账接收为空!‘;
return $result;
}
$url = ‘https://api.mch.weixin.qq.com/pay/profitsharingremovereceiver
‘;
//添加请求xml
$xmlArr = array();
$xmlArr[‘appid‘] = config(‘jshop.service_wechatgzh_appid‘);
$xmlArr[‘mch_id‘] = config(‘jshop.service_wechatpay_mch_id‘);
$xmlArr[‘nonce_str‘] = $this->getNonceStr();
$xmlArr[‘sign_type‘] = ‘HMAC-SHA256‘;
$xmlArr[‘receiver‘] = json_encode($profitSharingAccounts);
$sign = $this->makeSignBySHA($xmlArr);
$xmlArr[‘sign‘] = $sign;
$XmlStr = $this->toXml($xmlArr);
$res = $this->postXmlCurl($XmlStr, $url);
var_dump($res);
}
/**
* 完结分账
* * $out_order_no 系统自定义的单号
* $transaction_id 微信支付单号
*/
public function ProfitSharingFinish($out_order_no, $transaction_id)
{
$result = array();
$result[‘status‘] = false;
$result[‘message‘] = ‘未知错误!‘;
if ($out_order_no == ‘‘) {
$result[‘message‘] = ‘系统单号为空!‘;
}
if ($transaction_id == ‘‘) {
$result[‘message‘] = ‘支付单号为空!‘;
}
$url = ‘https://api.mch.weixin.qq.com/secapi/pay/profitsharingfinish‘;
$xmlArr = array();
$xmlArr[‘mch_id‘] = config(‘jshop.service_wechatpay_mch_id‘);
$xmlArr[‘appid‘] = config(‘jshop.service_wechatgzh_appid‘);
$xmlArr[‘out_order_no‘] = $out_order_no.‘1‘;
$xmlArr[‘transaction_id‘] = $transaction_id;
$xmlArr[‘nonce_str‘] = $this->getNonceStr();
$xmlArr[‘sign_type‘] = ‘HMAC-SHA256‘;
$xmlArr[‘description‘] = ‘完结分账‘;
$sign = $this->makeSignBySHA($xmlArr);
$xmlArr[‘sign‘] = $sign;
$XmlStr = $this->toXml($xmlArr);
$res = $this->postXmlCurl($XmlStr, $url, true);
$res = $this->fromXml($res);
$result[‘data‘] = $res;
if ($res[‘return_code‘] == ‘SUCCESS‘) {
$result[‘status‘] = true;
$result[‘message‘] = ‘查询成功!‘;
}
return $result;
}
php收付同分账,php微信分账功能 —— app支付相关推荐
- 微信开放平台手机APP支付
PHP对接APP微信支付 微信开放平台手机APP支付总结 1. 微信开放平台手机APP支付总结 支付功能链接: https://pay.weixin.qq.com/wiki/d ...
- java对账_Java微信对账接口返回值解析
public static void main(String[] args) throws Exception { String downloadbill = getDownloadbill();// ...
- 美团买单与微信分付入局后,蚂蚁花呗和京东白条地位不保了?
最近,消费金融市场的战火烧得有点猛.美团最近就上线了一款消费金融产品"美团买单",打响了它踏入消费金融市场的第一枪. 作为国内互联网公司的龙头老大之一,腾讯自然不甘示弱.据报道,腾 ...
- 微信分账功能与微信支付企业付款相关内容详解(payjs版)
PAYJS开通微信分账功能以来,有很多同学咨询相关情况.很多同学关心有没有什么办法,可以让自己的商户号快速开通企业付款功能.这里就介绍下微信分账的具体相关内容,可以完美解决问题. 一.什么是微信分账? ...
- 怎么看安装包是什么bit的_微信分付和支付分有什么区别 分付额度怎么看
阅读本文前,请您先点击上面的蓝色字体,再点击"关注",这样您就可以免费收到最新内容了.每天都有分享,完全是免费订阅,请放心关注! ...
- 微信支付 postman_微信版花呗“分付”开通入口在哪?2020年微信分付开通最全攻略!...
阅读本文前,请您先点击上面的蓝色字体,再点击"关注",这样您就可以继续免费收到文章了.每天都有分享,完全是免费订阅,请放心关注 免责声明图文来源于网络侵权请联系删除 ...
- 电商收付通可视化进件二级商户,多功能升级
能刷到这篇文章的小伙伴,说明你已经对电商收付通有所了解,或者正在了解的路上,就算不了解,不妨先看看 电商收付通系统,可视化进件二级商户 这篇内容,相信对你了解收付通是什么,怎么用,解决什么问题有所帮助 ...
- 数字人民币解决中小企收付难点
随着数字经济的发展,中小企业的经营环境面临着巨大的变化.用科技金融手段,如数字人民币等,在供给侧为中小企业提供普惠金融服务,具有重要意义. 中小企业是我国经济大循环的毛细血管,数量庞大.少数中小企业具 ...
- 2016年微信app支付开发填坑篇
之前开发过高德地图的,百度地图的,人家官网的资料,开发文档,官方论坛,应有尽有,特别详细.微信支付相对支付宝支付,操作繁琐了很多,而且有些文档上的说明太过专业,导致问题多多. 首先他们官网上面只有ec ...
- 微信电商收付通关于分账动账通知踩坑记录
微信电商收付通关于分账动账,此功能基本用于服务商抽佣,二级商户分账,账期控制等用途,在开发中我们一般希望于微信分账动账回调通知处理业务逻辑,但是这个回调通知,由于微信文档的描述不清晰,造成我们明明接收 ...
最新文章
- 当支持向量机遇上神经网络:这项研究揭示了SVM、GAN、Wasserstein距离之间的关系...
- MySQL中exists与in的使用
- 怎么样用javascript获取触发事件的对象
- C语言希尔排序(解析)
- jvm 参数-server_JVM选项:-client vs -server
- python 多线程为什么鸡肋?
- 使用.NET System.IO.Pipelines和Kestrel套接字库创建Redis客户端
- 对adapter的封装优化
- 44个实用的Apache Web Server面试问题及答案
- 图:婚庆现场管理系统-双屏版V3软件完美收工!!!
- nmap快速扫描大量主机端口方法
- 李小璐JAVA,李小璐和马蓉为什么都会婚内出轨?
- FZU 2139 久违的月赛之二
- bat和cmd文件是什么,dos又是什么东西
- 采用analysis-dynamic-synonym插件,动态文件的方式同步同义词
- python 列表嵌套字典 添加修改删除_python3--字典,字典的嵌套,概念:分别赋值
- 树的结点?结点的度?
- (30)【RCE集合】RCE漏洞的原理、出现地方、相关命令、函数解析、利用详细的过程
- OpenVas简介与安装
- JavaScript获取鼠标控制权
热门文章
- ov7725图像帧率计算公式总结
- ”微服务一条龙“最佳指南-工具篇:初步使用Pipenv
- python空气质量提醒代码_空气质量指数查询示例代码
- Python code on Sliced Inverse Regression ( SIR ) and Sliced Average Variance Estimates ( SAVE )
- 安装python时无法访问筛选器,如何使用Python筛选器功能(详解)
- lifecycle-aware components(生命周期感知组件用法和原理)
- Struts2 内部是如何工作的
- 日志-坑-keng-rz-rizhi-log
- Recovering Realistic Texture in Image Super-resolution by Deep Spatial Feature Transform
- SparkStreaming的背压机制