簡直日狗!這里要吐槽支付寶:
1.支付寶文檔太復雜,分類雖然詳細,但是我找不到app支付 對應服務端的demo
2.提供下載的sdk都是全整合的 用下來都是一條龍服務,還有一些客戶端(app)的請求也都放在里面的是鬧哪樣?
3.app支付分成 新老版本:老版本叫移動支付 , 新版本叫app支付,這里還有大坑~
4.app支付和移動支付 所用到的秘鑰是不同的! 分為app支付->商家秘鑰和移動支付->合作伙伴秘鑰!兩個秘鑰都要上傳,什么鬼東西!
現在講正題!APP支付報錯ALI40247處理方案!
參考:https://openclub.alipay.com/read.php?tid=250
一.如何簽約APP支付接口
第一步:進入管理中心:https://openhome.alipay.com/platform/appManage.htm
第二步:選擇或者創建一個應用,再選擇功能信息-》申請功能-》勾選APP支付-》確定添加。
第三步:點擊上方查看如何使用進入到簽約管理。
點擊立即簽約,簽約完成即可獲得接口權限,就可以聯調了
二.最近很多接入支付寶APP支付報錯ALI40247,下面寫一下處理方法
最新同步一種處理方案(ALI40247):已經簽約生效APP支付的商戶,需要在功能信息里面刪除APP支付,在重新添加一次(要求是已經簽約過APP支付的商戶操作才有效)
1.沒有APP支付權限導致
檢查您使用的這個appid是否簽約過APP支付這個接口的權限。如果沒有簽約看上面的《如何簽約APP支付接口》
2.有移動支付接口(接口名稱:mobile.securitypay.pay)權限沒有app支付接口(接口名稱:alipay.trade.app.pay)權限。以為可以使用APP支付接口,這是兩個接口如果有移動支付接口(接口名稱:mobile.securitypay.pay)權限想使 用APP支付接口(接口名稱:alipay.trade.app.pay),可以進行重新簽約參考《接口簽約方案》第三步 帖子地址:https://openclub.alipay.com/read.php?tid=276&fid=25
3.如果已經簽約了APP支付接口,還是報這個錯誤
需要檢查商戶公鑰上傳的位置是否正確
a.移動支付接口(接口名稱:mobile.securitypay.pay)的上傳合作伙伴密鑰管理
b.app支付接口(接口名稱:alipay.trade.app.pay)的上傳開放平台密鑰管理
注意:使用的接口不同上傳位置不同
這個接口應該使用開放平台密鑰管理里面的密鑰,檢查您這個接口使用的appid下面的公鑰(自己上傳的商戶公鑰)和支付寶報公鑰。因為沒有上傳商戶公鑰或者使用的商戶公鑰和商戶私鑰不匹配也會導致這個錯誤
4.請求支付編碼問題和沒有做url encode
編碼:就是請求了utf-8 但是用了gbk的編碼
encode:app支付接口(接口名稱:alipay.trade.app.pay)對請求字符串的所有一級value(biz_content作為一個value)進行encode。
5.管理中心》我的應用》狀態》(注意:)已上線才可以使用否則也會報這個錯誤
6.檢查應用是否已經上線
在這個鏈接的appid上輸入開發者的APPID :https://openhome.alipay.com/platform/selfSignContract.htm?appId=2016xxxxx 查詢是否顯示已簽約
然后進行訪問,查看接口簽約狀態
7.如果上面的方式無法處理建議咨詢支付寶的在線技術支持
https://cschannel.alipay.com/newPortal.htm?scene=mt_zczx&token=&pointId=&enterurl=https%3A%2F%2Fsupport.open.alipay.com%2Falipay%2Fsupport%2Findex.htm