因簽章驗證失敗,導致付款確認請求出現 HTTP 403 錯誤

Yu Liu 20 信譽點數
2026-10-11T23:26:03.25+00:00

我們的電子商務服務在接收付款確認請求時,會出現 HTTP 403 錯誤,導致部分付款流程無法正常完成。初步檢查發現,請求本文在解析過程中可能發生資料格式變更,進而影響加密簽章的驗證結果。請問在進行簽章驗證時,應如何確保保留並正確處理原始請求本文?此外,要如何確認問題是否與請求本文的解析方式有關,並在不影響現有付款處理流程的情況下解決此問題?

Windows for business | Windows Server | 網路功能 | 其他
0 則留言 沒有留言

1 個回答

排序依據: 最實用
  1. Harry Phan 35,965 信譽點數 獨立顧問
    2026-10-11T23:56:09.4766667+00:00

    您好,

    HTTP 403 錯誤可能是因為請求本文在簽章驗證前被 JSON 解析器或中介軟體修改,導致計算出的簽章與付款平台提供的簽章不一致。請確保驗證時使用原始、未經修改的請求本文,並在驗證成功後才解析 JSON 和執行付款處理邏輯。

    如果使用 Node.js,請在付款 Webhook 路由中取得原始 "Buffer",並確保 "express.json()" 等中介軟體不會先解析該路由的請求本文。驗證時,請確認使用正確的簽章標頭、演算法及 Webhook 密鑰,並使用常數時間比較方法。

    為確認問題是否源於本文解析,請在測試環境比較原始本文與驗證程式實際收到的資料,並記錄簽章驗證失敗次數及 HTTP 狀態碼;切勿記錄付款敏感資料或密鑰。建議先只調整 Webhook 路由的本文處理方式,保留現有付款邏輯,並使用付款平台提供的測試事件驗證修正結果。

    如果問題仍然存在,請提供所使用的付款平台、程式語言及 Web 框架,以便進一步確認正確的驗證方式。希望這裡的內容對您有幫助。如果它能幫助您更深入地了解問題,請採納此答案。如果您還有其他問題,歡迎留言。祝您愉快!

    HP.

    此回答有幫助嗎?

    0 則留言 沒有留言

您的回答

答案可由問題作者標示為「已接受」,而由仲裁者標示為「推薦」,這可協助使用者知道答案解決了作者的問題。