支付寶的同步和非同步的區別

2022-06-28 05:12:15 字數 993 閱讀 5385

第一種理解

同步是給客戶看的,非同步是伺服器處理請求。

同步是客戶充值或者支付成功了,給客戶乙個提示,告訴客戶這個操作的結果是成功還是失敗。起到的作用就是提示客戶這個操作的結果是成功還是失敗。

非同步是伺服器在後端處理支付成功或失敗時的業務邏輯。同步通知:用於使用者在支付寶頁面付款完畢後自動跳轉;

非同步通知:其實是處理業務邏輯,比如說修改客戶的支付狀態;

同步得到通知後跳轉到自己的**,然後根據引數告訴客戶支付結果,然後在更新狀態。

非同步其實就是乙個雙保險,如果同步沒有跳轉你的**,可能是關機了,或者網速慢,無法完成資料更新的狀態,這時候非同步就發揮作用了,先判斷是否支付,支付了就不必更新了,只返回支付寶 success 就行了,不然會一直非同步通知

第二種理解

當乙個支付請求被傳送到支付渠道方,支付渠道會很快返回乙個結果。但是這個結果,只是告訴你呼叫成功了,不是扣款成功,這叫同步呼叫。

很多新手會拿這個結果 當作支付成功了,那就會被坑死,結果就是支付成功率特別高,伴隨著一堆無法解釋的壞賬率,測試人員尤其要注意測試資料的篡改:金額,同步返回結果,訂單號等。

同步請求引數裡面會有乙個**位址,這個位址是支付渠道在扣款成功後呼叫的,這叫非同步呼叫。

一般同步介面僅檢查引數是否正確,簽名是否無誤等。非同步介面才告訴你扣款結果。

一般非同步介面有5秒以內的延遲。呼叫不成功會重試。有時候是這邊成功了,但支付渠道側沒收到返回,於是會繼續調。

當天的支付到第二天還在 被非同步呼叫也都是正常的。這也是開發人員需要特別注意的地方,不要當做重複支付。

測試人員也要對重複**進行測試,應只有一次有效。這還不是最坑的,一般 支付渠道側,只有支付成功了才通知你。

要是支付失敗了,壓根兒都不告訴你。

另一方面,如何老收不到非同步結果呢?那就得查查了。同步結果不可靠,非同步呼叫不可靠,那怎麼確定支付結果?最終的殺招就是查單了,

反查,一般支付渠道側都 會提供反查介面,定時獲取db中待支付的訂單呼叫支付渠道側的反查介面,最終把支付渠道側扣款成功的訂單完成掉。

支付寶的同步通知與非同步通知

同步用於即時通知支付完成 非同步用於防止資訊漏發漏收 解決方案二 可以這樣理解,1.使用者 買家 支付完成後,電商平台需要實時的給使用者乙個通知,如支付已經處理等待訂單確認。2.電商平台,這塊就需要考慮系統技術方面的各個環節,考慮應對複雜多變的併發使用者量 業務 流量 網路環境等因素,我們需要把可以...

支付寶支付和退款

最近在寫支付寶支付的功能 開發環境 yii2 框架 yii2 php 版本 php 5.6.32 及以上 伺服器 nginx 線上系統 centos7.1 支付寶交易退款開發文件 alipay.trade.refund 統一收單交易退款介面 注意閱讀人家官方開頭的應用場景介紹1 首先,自然是順利把d...

nodejs實現支付寶app支付 非同步通知結果驗籤

直接上 var crypto require crypto 1.提前獲取引數中的sign與sign type,然後刪除原來json中的這兩個引數 let sign response.sign let sign type response.sign type rsa2 delete response....