微信支付通知的處理方式簡要解析

2021-09-06 15:48:15 字數 1488 閱讀 3536

通知機制的實現,官方只有文件沒有demo**,對沒搞過的人來說,需要花大量時間來做測試。

這裡首先涉及到乙個關於php://input與$_post取值的問題,簡單列幾點如下:

先取$post 這是常規的支付通知資訊,形如:

array

( 'bank_type' => '3006',

'discount' => '0',

'fee_type' => '1',

'input_charset' => 'utf-8',

'notify_id' => 'yano6cznonzk0agb8njwggvuwssjt7ze7gwrars0r_5w9oxggnkrgxreek0r45yk3i9a2_gzo9iqgqmybap6bxc2t3p0o-2c',

'out_trade_no' => '1214284731',

'partner' => '12******xx',

'product_fee' => '3400',

'sign' => '545fa0e8b594bb***x48xx142f084ty',

'sign_type' => 'md5',

'time_end' => '20130223110224',

'total_fee' => '3400',

'trade_mode' => '1',

'trade_state' => '0',

'transaction_id' => '12***449012014***33174005***',

'transport_fee' => '0',)

再用file_get_contents('php://input')讀取額外的資訊,形如:

<

xml><

openid

>

o0pd3jqhan7b0tvpdfjpzjeksclw

]]>

openid

>

<

>

w***x06xx2c***88xx

]]>

>

<

issubscribe

>1

issubscribe

>

<

timestamp

>1400814743

timestamp

>

<

noncestr

>

lqxwmsiy9exrdpms

]]>

noncestr

>

<

>

c2d***e186116b32b06a***c1a688b671ee***5e

]]>

>

<

signmethod

>

sha1

]]>

signmethod

>

xml>

最後,做相應的業務邏輯處理,就不詳述了。

微信支付結果通用通知

由於存在重新傳送後台通知的情況,因此同樣的通知可能會多次傳送給商戶系統。商戶系統必須能夠正確處理重複的通知。推薦的做法是,當收到通知進行處理時,首先檢查對應業務資料的狀態,判斷該通知是否已經處理過,如果沒有處理過再進行處理,如果處理過直接返回結果成功。在對業務資料進行狀態檢查和處理之前,要採用資料鎖...

Atitit 微信支付 支付結果通用通知

支付結果通用通知 該鏈結是通過 統一下單api 通知url必須為直接可訪問的 url,不能攜帶引數。示例 notify url 欄位名 變數名 必填 型別 示例值 描述 返回狀態碼 return code 是string 16 success success fail 此字段是通訊標識,非交易標識,...

微信支付 JSAPI方式

前言 因為老是用到還需要回顧以前的 所以寫篇文章記錄一下,同時也希望可以幫助到正好有需要的朋友。準備 配置網域名稱 http 網域名稱 mp verify q0u1chj03asdacac.txt 登入商戶號獲得商戶號mchid,配置商戶號 商戶號 賬號中心 安全中心 設定apikey 商戶號 產品...