支付寶or微信支付過程中需要二次簽名的思考

最近碰到了小程序支付的功能,由於是第一次寫這樣的功能,看完前後端的開發文檔,對於裏面的二次簽名比較好奇: 服務端返回的數據都沒有原始訂單裏的價格等參數,爲什麼小程序還要二次簽名呢?不可以直接拿來調起支付嗎?

以下是我一些不成熟的思考,如有不對,還望指正,感謝!


參數簽名的作用

  1. 請求來源(身份)是否合法
  2. 防止請求參數被篡改
  3. 請求的唯一性(不可複製)

結合流程思考

  1. 由服務端利用加密的參數簽名發起統一訂單

防止參數被篡改

  1. 時間戳

請求的唯一性

  1. 32位隨機字符串

輔助校驗防止信息被篡改

  1. 微信支付中心返回的參數由服務端傳達給客戶端 —— 未加密

  2. 客戶端進行二次簽名且 appid 和 api key 均不在數據傳輸中,即由小程序完成二次加密

防止支付訂單被替換

幾乎所有加密都不可逆,這應該是對於金融領域的安全性來設計的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章