課程地址:
https://study.163.com/course/courseMain.htm?courseId=1004873017
本課項目地址:
https://github.com/wechatdeveloper/WechatVideoCourse
課程目標:
了解微信支付開發,相關配置 ; 微信支付的基本流程和規則。
一:接口規則
- 傳輸方式:為保證數據安全性,必須采用HTTPS傳輸
- 提交方式:POST 方式提交請求
- 數據格式:提交、返回的數據格式為:XML
- 字符編碼:UTF-8 編碼
- 簽名算法:MD5
- 簽名要求:請求、接收數據均需要檢驗簽名
- 證書要求:申請退款、撤銷訂單,需要商戶證書
- 判斷邏輯:先判斷協議字段的反饋,再判斷業務的返回,最后判斷交易狀態
二、參數設定
- Body字段格式要求
- 交易金額:默認是人民幣交易,支付金額的單位是:分;所以參數是不能帶小數的整數。對賬單的單位是:元
- 交易類型:JSAPI ,公眾號支付;NATIVE,原生掃碼支付;App 支付;H5支付
- 貨幣類型:CNY
- 時區:東八區
- 時間戳:1970年1月1日 0點0分0秒以來的秒數 ,使用Long 或 String存儲
- 商戶訂單號:商戶自己生成,必須唯一;可由【時間+隨機序列】生成訂單號;支付失敗后的重新支付,使用原訂單號。已支付完成,已關單,已撤銷的單子不能重新支付。
- 銀行類型:https://sdk.weixin.senparc.com/TenPayV3/BankCode
三、安全規范
- 簽名算法:基類 EntryHelper RequestHelper CreateMD5Sign() 和JS-SDK 邏輯基本一致;帶入最后1個需要簽名的參數
- 生成隨機字符串算法:nonce_str ,保證簽名不可預測 ; TenPayV3Util.GetNoncestr() 把GUID再進行MD5 加密
- 商戶證書安全:做好安全防護,防止被下載,可使命名為:#apiclient_cert.p12
- 商戶回調API安全:使用HttpS協議 , 支付結果 僅相信:微信服務器 => 應用服務器 返回的結果;並且對返回結果 簽名后、驗證