1. 程式人生 > >理解支付寶同步回撥和非同步回撥

理解支付寶同步回撥和非同步回撥

支付寶同步回撥和非同步回撥

當一個支付請求被髮送到支付渠道方,支付渠道會很快返回一個結果。但是這個結果,只是告訴你呼叫成功了,不是扣款成功,這叫同步呼叫。
很多新手會拿這個結果 當作支付成功了,那就會被坑死,結果就是支付成功率特別高,伴隨著一堆無法解釋的壞賬率,測試人員尤其要注意測試資料的篡改:金額,同步返回結果,訂單號等。

同步請求引數裡面會有一個回撥地址,這個地址是支付渠道在扣款成功後呼叫的,這叫非同步呼叫。
一般同步介面僅檢查引數是否正確,簽名是否無誤等。非同步接口才告訴你扣款結果。
一般非同步介面有5秒以內的延遲。呼叫不成功會重試。有時候是這邊成功了,但支付渠道側沒收到返回,於是會繼續調。
當天的支付到第二天還在 被非同步呼叫也都是正常的。這也是開發人員需要特別注意的地方,不要當做重複支付。
測試人員也要對重複回撥進行測試,應只有一次有效。這還不是最坑的,一般 支付渠道側,只有支付成功了才通知你。
要是支付失敗了,壓根兒都不告訴你。
另一方面,如何老收不到非同步結果呢?那就得查查了。同步結果不可靠,非同步呼叫不可靠,那怎麼確定支付結果?最終的殺招就是查單了,
反查,一般支付渠道側都 會提供反查介面,定時獲取DB中待支付的訂單呼叫支付渠道側的反查介面,最終把支付渠道側扣款成功的訂單完成掉。