$cert_dir = ROOT_PATH.DS."config".DS."payment_cert".DS."wechatpay".DS;
/**
* 微信分账功能
* $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;
}