微信服務商分賬功能開發(PHP)
博客說明
文章所涉及的資料來自互聯網整理和個人總結,意在于個人學習和經驗匯總,如有什么地方侵權,請聯系本人洗掉,謝謝!
設定分賬引數
在呼叫支付的時候設定引數

添加分賬引數

在JDK中添加get,set方法
//分賬
public function SetProfit_sharing($value)
{
$this->values['profit_sharing'] = $value;
}
public function GetProfit_sharing()
{
return $this->values['profit_sharing'];
}
public function IsProfit_sharingSet()
{
return array_key_exists('profit_sharing', $this->values);
}
添加分賬接收方
核心代碼

部分引數寫在SDK的config檔案中
<?php
/**
* @name ProfitSharing.php
* @author tanglei
* @date 2020/8/9
*/
namespace app\api\service;
use think\facade\Env;
require_once Env::get('root_path'). "extend/WxPay/WxPay.Api.php";
class ProfitSharing
{
public static function addPro()
{
$receiver = [
"type" => "MERCHANT_ID",
"account" => "11111",
"name" => "有限公司",
"relation_type" => "SERVICE_PROVIDER"
];
$WxOrderData = https://www.cnblogs.com/guizimo/p/new /WxPayProfitSharing();
//子商戶號
$WxOrderData->SetSub_Mch_id('11111');
$WxOrderData->SetSubAppid(config('base.app_id'));
$WxOrderData->SetReceiver(json_encode($receiver));
$wxOrder = \WxPayApi::profitsharingAddReceiver($WxOrderData);
return $wxOrder;
}
}
要改一下SDK檔案
在Data的簽名里面必須使用HMAC-SHA256
public function MakeSignH()
{
//簽名步驟一:按字典序排序引數
ksort($this->values);
$string = $this->ToUrlParams();
//簽名步驟二:在string后加入KEY
$string = $string . "&key=".WxPayConfig::KEY;
//簽名
$string = hash_hmac("sha256",$string,WxPayConfig::KEY);
//簽名步驟四:所有字符轉為大寫
$result = strtoupper($string);
return $result;
}
在Api檔案中添加一個方法
public static function profitsharingAddReceiver($inputObj, $timeOut = 6)
{
$url = "https://api.mch.weixin.qq.com/pay/profitsharingaddreceiver";
$inputObj->SetAppid(WxPayConfig::APPID);//公眾賬號ID
$inputObj->SetMch_id(WxPayConfig::MCHID);//商戶號
$inputObj->SetNonce_str(self::getNonceStr());//隨機字串
//簽名
$inputObj->SetSignHash();
$xml = $inputObj->ToXml();
$startTimeStamp = self::getMillisecond();//請求開始時間
$response = self::postXmlCurl($xml, $url, false, $timeOut);
return $response;
$result = WxPayResults::Init($response);
self::reportCostTime($url, $startTimeStamp, $result);//上報請求花費時間
return $result;
}
測驗

分賬

核心代碼
public static function profitSharing()
{
$receivers = [
"type" => "MERCHANT_ID",
"account" => "111111",
"amount" => 2,
"description" => "分到服務商"
];
$orderNo = self::makeOrderNo();
$WxOrderData = https://www.cnblogs.com/guizimo/p/new /WxPayProfitSharing();
$WxOrderData->SetSub_Mch_id('11111');
$WxOrderData->SetTransaction_id('42789709008202008098970721631');
$WxOrderData->SetOut_order_no($orderNo);
$WxOrderData->SetSubAppid(config('base.app_id'));
$WxOrderData->SetReceivers(json_encode($receivers));
$wxOrder = \WxPayApi::profitsharing($WxOrderData);
return json($wxOrder);
}
在Api檔案中添加一個方法
public static function profitsharing($inputObj, $timeOut = 6)
{
$url = "https://api.mch.weixin.qq.com/secapi/pay/profitsharing";
$inputObj->SetAppid(WxPayConfig::APPID);//公眾賬號ID
$inputObj->SetMch_id(WxPayConfig::MCHID);//商戶號
$inputObj->SetNonce_str(self::getNonceStr());//隨機字串
//簽名
$inputObj->SetSignHash();
$xml = $inputObj->ToXml();
$startTimeStamp = self::getMillisecond();//請求開始時間
$response = self::postXmlCurl($xml, $url, true, $timeOut);
//return $response;
$result = WxPayResults::Init($response);
self::reportCostTime($url, $startTimeStamp, $result);//上報請求花費時間
return $result;
}
測驗

感謝
微信開放平臺
萬能的網路
以及勤勞的自己
關注公眾號: 歸子莫,獲取更多的資料,還有更長的學習計劃
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/91743.html
標籤:Java
上一篇:delphi里怎么把指定檔案夾內的所有檔案名輸出出來(重不重復無所謂,型別也無所謂)
下一篇:怎么將image存進list里面
