微信支付v3 介面-特約商戶進件提交,狀態查詢,以及圖片上傳 , 使用 https://github.com/snowlyg/wechatpay-guzzl... 實現微信簽名認證。
環境要求
- PHP 5.5+ / PHP 7.0+
- guzzlehttp/guzzle 6.0+
注意:PHP < 7.2 需要安裝 bcmath 擴充套件
使用方法
use GuzzleHttp\Exception\RequestException;use Snowlyg\WechatPay\Client\Http;
// 商戶相關配置
$merchantId = '1000100'; // 商戶號
$merchantPrivateKey = '/path/to/mch/private/key.pem'; // 商戶私鑰
$merchantSerialNumber = 'XXXXXXXXXX'; // 商戶API證照序列號
// 微信支付平臺配置
$wechatpayCertificate = '/path/to/wechatpay/cert.pem'; // 微信支付平臺證照
$apiv3_key = '/path/to/wechatpay/cert.pem'; // API v3金鑰 32 位元組
$http = new Http($merchantId,$merchantPrivateKey,$merchantPrivateKey,$wechatpayCertificate,$apiv3_key);
try {
// applyment_id 微信支付分的申請單號,提交申請單後返回
$http->getWechatPay("applyment4sub/applyment/applyment_id/{applyment_id}");
// 完整引數檢視微信文件 [特約商戶進件](https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/tool/applyment4sub/chapter3_2.shtml)
$data =[ //業務申請編號
"business_code" => "....", //超級管理員資訊
"contact_info" => [ "contact_name" => $http->getEncrypt("contact_name"), // 敏感資料
// .... 其他引數
], //主體資料
"subject_info" => [ "subject_type" => "....", //營業執照
"business_license_info" => [ "license_copy" => $http->getWechatPayImghasd('license_copy'), //圖片
// .... 其他引數
], // .... 其他引數
], ]; //提交申請單
$http->postWechatPay("applyment4sub/applyment",$data);
} catch (RequestException $e) {
// 進行錯誤處理
echo $e->getMessage()."\n";
if ($e->hasResponse()) {
echo $e->getResponse()->getStatusCode().' '.$e->getResponse()->getReasonPhrase()."\n";
echo $e->getResponse()->getBody();
} return;}
開發插曲
寫此功能的時候,在微信開放社群找到一個寫過次功能的哥們聯絡方式。本來想向他請教一下,以免自己少走彎路。沒想到這哥們直接開口要 300 大洋….
看來沒法偷懶了,只能自己寫了。
在微信開放社群找到很多朋友分享的程式碼,非常感謝他們。
還有微信官方文件的微信簽名 sdk , https://github.com/snowlyg/wechatpay-guzzl... 。
聯絡交流
如果你發現了BUG或者有任何疑問、建議,請通過issue進行反饋。
也可以加 QQ 群交流:676717248
本作品採用《CC 協議》,轉載必須註明作者和本文連結