之前對(duì)接支付寶商家扣款的時(shí)候,在簽約協(xié)議的部分卡了很久,今天把之前遇到的簽約問(wèn)題匯總記錄一下~

協(xié)議簽約流程
首先幫大家捋一下簽約的順序,便于直觀理解:

其次還需要知道的是,支付寶的商家扣款的簽約接口有兩個(gè):
- 一個(gè)是單獨(dú)簽約接口:
- 另一個(gè)是支付并簽約接口:
這兩個(gè)接口都可以簽約,主要區(qū)別在于簽約的時(shí)候是否涉及支付,可以根據(jù)業(yè)務(wù)場(chǎng)景去確認(rèn)使用哪個(gè)接口簽約。
具體問(wèn)題一覽
簽約流程看起來(lái)比較簡(jiǎn)單,但在簽約的各個(gè)階段都容易遇到問(wèn)題,比如:
- 生成的簽約串,為什么喚不起簽約頁(yè)面?? ̄へ ̄
- 為什么簽約跳轉(zhuǎn)到支付寶的時(shí)候會(huì)中轉(zhuǎn)一下支付寶頁(yè)面??(▼皿▼#)
- 簽約完成了之后為啥沒(méi)有通知!!(╬ ̄皿 ̄)
- 為什么我收到通知了但是還是簽約失敗了?!(╥╯^╰╥)
雖然問(wèn)題很多,不過(guò)好在最終都順利解決了,下面將詳細(xì)記錄每個(gè)問(wèn)題的解法,供大家參考~
排查思路
問(wèn)題一:生成的簽約串,無(wú)法喚起簽約界面,報(bào)錯(cuò)“開(kāi)通失敗”

[開(kāi)通失?。合到y(tǒng)異常,簽約失敗,商戶請(qǐng)求數(shù)據(jù)錯(cuò)誤]
遇到這個(gè)問(wèn)題后,搜索參考了官方文檔,發(fā)現(xiàn)這個(gè)報(bào)錯(cuò)的意思就是參數(shù)有問(wèn)題,下次遇到直接檢查參數(shù)即可。
以下這些參數(shù)都有可能導(dǎo)致這個(gè)報(bào)錯(cuò),在此做一匯總,幫大家避坑、自查:
- external_agreement_no 傳了,但是沒(méi)有傳 sign_scene
- external_agreement_no 傳了,但是 sign_scene 是默認(rèn)值
- channel 錯(cuò)誤或者為空
- execute_time 下次扣款時(shí)間為空,或者 格式不是 yyyy-MM-dd
- period_type = DAY 的時(shí)候,period 周期小于 7 天,最小周期不能小于 7 天
- period_type = MONTH 的時(shí)候,execute_time > 28 日
- total_amount < single_amount 總扣款金額小于單次扣款金額
- total_payment 總扣款次數(shù)為 0
其它喚起簽約常見(jiàn)報(bào)錯(cuò)可參閱官方文檔:
- [周期扣款支付并簽約報(bào)錯(cuò):系統(tǒng)異常]
- [周期扣款喚起簽約界面報(bào)錯(cuò)系統(tǒng)繁忙]
- [開(kāi)通失?。汉灱s賬戶不匹配]
- [支付寶個(gè)人協(xié)議頁(yè)面簽約接口喚起頁(yè)面報(bào)錯(cuò)404]
- [開(kāi)通失敗:用戶最大簽約次數(shù)檢查失敗]
問(wèn)題二:為什么簽約跳轉(zhuǎn)到支付寶的時(shí)候會(huì)中轉(zhuǎn)一下支付寶頁(yè)面
喚起簽約沒(méi)有問(wèn)題之后,遇到了一個(gè)體感不好的地方,就是在喚起簽約跳轉(zhuǎn)到支付寶的過(guò)程中會(huì)遇到先跳轉(zhuǎn)到支付寶頁(yè)面的問(wèn)題,雖然沒(méi)有什么大的影響,但是整體體感上不是很好 =^ =。
這個(gè)找了支付寶客服問(wèn)了下,結(jié)果主要是因?yàn)槲?strong>生成的簽約串的拼接方式有問(wèn)題,使用
alipays://platformapi/startapp?appId=60000157&appClearTop=false&startMultApp=YES&sign_params=
去拼接就可以了,客服給力o( ̄▽ ̄)d
拼接鏈接參考官方文檔:[周期扣款無(wú)線端如何喚起簽約] 即可~
其它簽約跳轉(zhuǎn)常見(jiàn)問(wèn)題可參閱官方文檔:
問(wèn)題三:簽約完成了之后為啥沒(méi)有通知
原因一:簽約失敗了
這個(gè)問(wèn)題的最重要的是要確認(rèn)是不是簽約成功了??!只有簽約成功的情況下,支付寶才會(huì)發(fā)送異步通知。
一直沒(méi)有收到通知的情況下,一定要通過(guò)查詢接口去確認(rèn)是不是簽約成功的。
原因二:異步地址有問(wèn)題
另外筆者還遇到過(guò)因?yàn)樵O(shè)置的地址有問(wèn)題導(dǎo)致沒(méi)有收到的,此類問(wèn)題可以參考官方文檔:[收不到異步通知]。
商家扣款簽約接口比較特別的是,他的簽約地址可以在三個(gè)地方設(shè)置,分別是:
接口的 sign_notify_url 參數(shù)、接口的 notify_url 參數(shù)、平臺(tái)上的 應(yīng)用網(wǎng)關(guān) 地址。
優(yōu)先級(jí)是 sign_notify_url > notify_url > 應(yīng)用網(wǎng)關(guān)
其他常見(jiàn)問(wèn)題可參閱官方文檔:
問(wèn)題四:為什么我收到通知了但是還是簽約失敗了
讓我覺(jué)得最「坑」的還是這個(gè)支付并簽約接口了。
剛開(kāi)始收到通知之后覺(jué)得已經(jīng)簽約成功了,但是消息內(nèi)容怎么看都跟之前接收到的不一樣,研究了下發(fā)現(xiàn)是支付的通知,不是簽約的通知。
查了文檔才知道,這個(gè)接口他發(fā)兩條通知,一條支付的,一條簽約的。
而且支付成功不一定簽約成功。

不管怎么說(shuō),一定要根據(jù)是否收到了簽約的異步通知來(lái)判斷簽約狀態(tài),實(shí)在不行就用查詢接口查。
另外要注意,如果我們選擇不開(kāi)啟自動(dòng)續(xù)費(fèi)的話,也不會(huì)有簽約成功的通知。

其他常見(jiàn)問(wèn)題可參閱官方文檔:
以上就是關(guān)于支付寶接口簽約遇到的所有問(wèn)題啦,希望對(duì)你有所幫助~
有問(wèn)題一起溝通~??ヽ(°▽°)ノ?

