1. 程式人生 > >微信支付開發 微信支付 微信商戶免充值代金券 沙箱密鑰

微信支付開發 微信支付 微信商戶免充值代金券 沙箱密鑰

width tran 產生 img 安全 原理 性能 正式 固定

一、仿真測試系統

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

技術分享圖片

圖1 微信支付仿真測試系統

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

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

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

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

獲取驗簽秘鑰API:

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

請求參數:

字段名字段必填示例值類型說明
商戶號 mch_id 1305638280 String(32) 微信支付分配的微信商戶號
隨機字符串 nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS String(32) 隨機字符串,不長於32位
簽名 sign 5K8264ILTKCH16CQ2502SI8ZNMTM67VS String(32) 簽名值

返回參數:

字段名字段必填示例值類型說明
返回狀態碼 return_code SUCCESS String(16) SUCCESS/FAIL 此字段是通信標識,非交易標識
返回信息 return_msg 簽名失敗 String(128) 返回信息,如非空,為錯誤原因 ,簽名失敗 ,參數格式校驗錯誤

以下字段在return_code 為SUCCESS的時有返回。

字段名字段必填示例值類型說明
商戶號 mch_id 1305638280 String(32) 微信支付分配的微信商戶號
沙箱密鑰 sandbox_signkey 013467007045764 String(32) 返回的沙箱密鑰

商戶接入仿真系統的交互流程示例:
1. 商戶發起刷卡支付請求,使用POST方式調用 https://api.mch.weixin.qq.com/sandboxnew/pay/micropay
2. 帶sandboxnew 的https請求會被nginx路由到仿真系統。仿真系統根據支付金額(total_fee字段)返回預期報文給商戶。同時,落地該筆請求數據;
3. 商戶發起查單,調用 https://api.mch.weixin.qq.com/sandboxnew/pay/orderquery,帶上微信訂單號(transaction_id)或商戶內部單號(out_trade_no);
4. 仿真系統收到查單請求後,根據單號及金額返回預期的查單結果給商戶;
5. 商戶下載對賬單,調用 https://api.mch.weixin.qq.com/sandboxnew/pay/downloadbill,仿真系統返回固定的賬單格式給商戶。註:賬單內容不一定與商戶在仿真系統產生的交易完全相同。

微信支付開發 微信支付 微信商戶免充值代金券 沙箱密鑰