首頁  >  文章  >  微信小程式  >  微信支付開發之沙箱密鑰步驟詳解

微信支付開發之沙箱密鑰步驟詳解

Y2J
Y2J原創
2017-05-08 10:50:389618瀏覽

一、模擬測試系統

為降低商家測試門檻,微信支付團隊開發了一套獨立的模擬測試系統。該系統根據驗收用例金額的不同返回不同的回應報文,以滿足商家正常功能測試、安全/異常測試及效能測試的需求。

 

圖1 微信支付模擬測試系統

圖1為微信支付模擬測試系統(後簡稱模擬系統)的簡化原理圖。仿真係統的API協定與正式API完全相同。商家開發者只要將正式API的呼叫URL增加一層sandboxnew路徑,即可對接到模擬系統。

例如,刷卡付款URL:api.mch.weixin.qq.com/pay/micropay

變更為:api.mch.weixin.qq.com/sandboxnew/pay/micropay。

模擬系統與生產環境完全獨立,包括儲存層。商家在模擬系統所做的所有交易(如下單、支付、查詢)均為無資金流的假數據,即:用戶無須真實扣款,商家也不會有資金入帳。代金券同理,沙箱環境中無需商家真實製券與發券,亦不會出現真實扣券狀況。驗收模擬測試系統的API驗簽金鑰需從API取得:

取得驗簽秘鑰API:

請求Url api.mch.weixin.qq.com/sandboxnew/pay/getsignkey
是否需要憑證
#請求方式 POST
#


請求參數

#String(32)String(32)
#欄位名稱 欄位 #必填 範例值 類型 說明
#商家號碼 mch_id 1305638280 String(32) 微信支付分配的微信商家號碼
#隨機字符字串 nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS #String(32) 隨機字串,不長於32位元
隨機字串,不長於32位元 簽名 sign #5K8264ILTKCH16CQ2502SI8ZNMTM67VS
簽名值############


傳回參數:

##必填#範例值類型說明回傳 #回傳訊息


以下欄位在return_code 為SUCCESS的時有回傳。

欄位名稱 欄位
狀態碼##return_code SUCCESS String(16) SUCCESS/FAIL 此欄位是通訊標識,非交易標識
return_msg 簽名失敗 String(128) 傳回訊息,如非空,為錯誤原因 ,簽章失敗 ,參數格式校驗錯誤
欄位名稱 欄位 必填 範例值 類型 說明
商家號碼 mch_id 1305638280 #String(32) 微信支付分配的微信商家號碼
沙箱金鑰 sandbox_signkey 013467007045764 String(32) 傳回的沙箱金鑰
#

商家存取模擬系統的互動流程範例: 
1. 商家發起刷卡支付請求,使用POST方式呼叫api.mch.weixin.qq.com/sandboxnew#/pay/micropay 
2. 帶有sandboxnew 的https請求會被nginx路由到模擬系統。模擬系統根據支付金額(total_fee欄位)返回預期封包給商家。同時,落地該筆請求資料; 
3. 商家發起查單,呼叫api.mch.weixin.qq.com/sandboxnew/pay/orderquery,帶上微信​​訂單號碼(transaction_id)或商家內部單號(out_trade_no); 
4. 模擬系統收到查單請求後,根據單號及金額回傳預期的查單結果給商家; 
5. 商家下載對帳單,呼叫api.mch .weixin.qq.com/sandboxnew/pay/downloadbill,模擬系統傳回固定的帳單格式給商家。註:帳單內容不一定與商家在模擬系統產生的交易完全相同。

二、沙箱金鑰

使用方倍工作室微信支付全能介面類,幾行程式碼即可實現

//1.5 沙箱密钥$obj = array();$obj['mch_id'] = MCHID;$url = 'https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey';$wxHongBaoHelper = new WxPay();$data = $wxHongBaoHelper->wxpay($url, $obj, false);$res = $wxHongBaoHelper->xmlToArray($data);

回傳結果如下

array(3) {
  ["return_code"]=>  string(7) "SUCCESS"
  ["return_msg"]=>  string(2) "ok"
  ["sandbox_signkey"]=>  string(32) "4d827419cb511d8f6ccc35d574ff1f7b"}

模擬測試系統

為降低商家測試門檻,微信支付團隊開發了一套獨立的模擬測試系統。該系統根據驗收用例金額的不同返回不同的回應報文,以滿足商家正常功能測試、安全/異常測試及效能測試的需求。

【相關推薦】

1.微信公眾號平台原始碼下載

2.微信投票原始碼


#

以上是微信支付開發之沙箱密鑰步驟詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn