支付寶支付接口遇到的問題總結

   最近公司的項目有用到調用支付寶接口的功能,業務場景和對應的接口分別以下java

1用戶經過網頁支付向商家打錢 https://doc.open.alipay.com/doc2/detail?treeId=60&articleId=103564&docType=1瀏覽器

2用戶提現的功能(商家向用戶打錢)https://doc.open.alipay.com/doc2/detail?treeId=64&articleId=103569&docType=1安全

 

這兩個接口都必須先和阿里簽約才能調用下面把開發遇到的問提總結一下:服務器

 

1.網頁支付接口,在官方提供的java版本demo工程裏不容許傳自定義連接,我如今想調用支付寶接口後再執行本身的工程裏的業務代碼而且跳轉到我本身的項目工程裏,查了下官方API可在商品描述body字段裏傳本身項目的業務連接和回調url,可是這樣在簽名return_url..jsp的校驗  AlipayNotify.verify(params) 裏返回false,緣由是在getSignVeryfy簽名校驗的body字段傳入了&等特殊符號,看了下代碼只能把AlipayNotify.java 裏的        if (isSign && responseTxt.equals("true"))改爲   if (i responseTxt.equals("true"))  那麼AlipayNotify.verify(params)就能夠返回true。app

 

return_url.jsp裏是等交易完成後同步跳到這個jsp進行咱們本身後的臺業務處理,這樣有個問題若是用戶提早手動關閉交易完成的界面,會出現支付寶支付成功,可是後臺未扣款的狀況,解決辦法是把業務處理的模擬http請求寫在notify_url.jsp異步通知頁面,這樣不用等用戶按完成或者等一段時間自動跳轉到return_url.jsp裏,而是輸入支付密碼後定時跳到notify_url.jsp異步

 

下面是支付寶官方文檔關於異步通知頁面的描述的描述:jsp

有一點須要注意的是跳到notify_url.jsp的url必須是公網客訪問的域名或則ip不然支付寶服務器沒法跳轉,調試的時候可用第三方域名代理工具natapp(https://natapp.cn/) ide

注意點:工具

①natapp已經不可用url

②在通常系統中,差錯處理分爲兩種,一種人工來處理,一種系統自動來處理。

主要有以下狀況:

本地未支付,支付渠道已支付。這主要是本地未正確接收到渠道下發的異步通知致使。 通常處理是將本地狀態修改成已支付,並作響應的後續處理,好比通知業務方等。

本地已支付,支付渠道已支付,可是金額不一樣,這個須要人工覈查。

本地已支付,可是支付渠道中無記錄;或者本地無記錄,支付渠道有記錄。在排除跨日因素外,這種狀況很是少見,須要瞭解具體緣由後作處理。

基本的思路是寫一個定時器,凌晨的時候分別以平臺訂單爲基準對帳,銀行訂單爲基準對帳

③防止訂單重複提交

 

2.商家向用戶打錢調用的是批量轉帳接口,這個接口須要先在本身的瀏覽器裏安裝安全證書才能調用。

相關文章
相關標籤/搜索