微信支付 v3 : 特約商戶進件提交&&狀態查詢&&以及圖片上傳

snowlyg發表於2020-04-11

微信支付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
Iris-go

本作品採用《CC 協議》,轉載必須註明作者和本文連結

不會偷懶的程式設計師無法成為一個優秀的程式設計師

相關文章