作為服務商,需要協助沒有開發能力的商家接入業務產品和開發應用的載體,經常要用到支付寶的 接口代簽約 功能,然而在使用過程中若是遇到失敗的情況,就會讓本來是為了提升效率的功能反而拖慢了項目進度,今天我就來簡單盤一盤接口代簽約失敗問題的排查思路,幫助同學快速定位問題原因,效率 up 工資 up !
一、接口代簽約基礎介紹
在排查問題前,先了解下接口代簽約的工作原理。簡單來講,若商家沒有開通產品,需要服務商用接口代簽約功能提交開通申請,商家確認並授權,確認後即可完成開通和授權操作。具體流程如下:
- 服務商調用 alipay.open.agent.signstatus.query(查詢商户某個產品的簽約狀態接口)查詢商家的開通狀態。
- 若需協助商家開通,可調用代開發核心接入 API 中的開通接口,傳入商家資料,進行開通申請。
- 若申請通過,商家進行確認開通及授權(即商家開通開放產品的同時,將商家應用的開發權限授權給服務商)。
- 商家確認後,即完成開通和授權操作。
二、排查方向及問題解決方法
1. 確認商家產品開通狀態
在代簽約前,最好先查詢一下產品開通狀態,避免重複開通。作為服務商,一般可以通過 登錄開放平台 或 調用接口 查詢開通狀態。
- 登錄開放平台:登錄三方應用詳情 > 商家授權 > 選擇對應商家信息 > 點擊 授權詳情,在 開通狀態 列可查看該商家的產品開通情況
-
調用接口:服務商代調用 alipay.open.agent.signstatus.query(查詢商户某個產品的簽約狀態接口),可查詢商家和各產品之間的開通狀態。 示例代碼:
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2"); AlipayOpenAgentSignstatusQueryRequest request = new AlipayOpenAgentSignstatusQueryRequest(); request.setBizContent("{" + " \"pid\":\"支付寶賬號:2088123451234543或手機號:13811111111或郵箱:123@xxx.com\"," + " \"product_codes\":[" + " \"I1011000100000000001\"" + " ]" + "}"); AlipayOpenAgentSignstatusQueryResponse response = alipayClient.execute(request); if(response.isSuccess()){ System.out.println("調用成功"); } else { System.out.println("調用失敗"); }
2. 確認開通申請信息是否缺失
若需要協助商家開通,要調用代開發核心接入 API 中的開通接口傳入商家資料,進行開通申請,但是每個產品需要的商家資料可能會有不同,這裏推薦先用 接口代簽約 工具直接查詢,它可以用 batch_no、或 trace_id 排查接口代簽約失敗原因,查詢最近 7 天內線上用户調用代簽約接口失敗的相關報錯,自動診斷並給出具體原因和解決方案,比如之前有一次就直接幫我查出了營業執照號沒填的問題,再也不用去對應文檔慢慢找,省了很多力。
3. 確認申請類目是否是特殊資質
選擇類目時要注意,部分類目屬於特殊資質,比如校園團餐,需要先確保商家有相關證明,並在申請時傳入,否則也會導致代簽約失敗,具體要求可查看商家簽約所需信息資料文檔。
4. 三方應用代商家簽約等調用接口時報:isv 權限不足,缺少“第三方接入核心API”
是由於三方應用沒有添加 第三方接入核心 API 功能包導致,需要按照提示在三方應用開放平台後台添加功能包後重新調用接口。要登錄支付寶開放平台,在應用的 功能管理 中添加功能包 第三方接入核心 API。
以上就是我關於代簽約失敗相關的排查思路,希望能給大家帶來幫助,也歡迎大家在評論區交流溝通~