1. 程式人生 > >支付寶支付介面遇到的問題總結

支付寶支付介面遇到的問題總結

   最近公司的專案有用到呼叫支付寶介面的功能,業務場景和對應的介面分別如下

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。

return_url.jsp裡是等交易完成後同步跳到這個jsp進行我們自己後的臺業務處理,這樣有個問題如果使用者提前手動關閉交易完成的介面,會出現支付寶支付成功,但是後臺未扣款的情況,解決辦法是把業務處理的模擬http請求寫在notify_url.jsp非同步通知頁面,這樣不用等使用者按完成或者等一段時間自動跳轉到return_url.jsp裡,而是輸入支付密碼後馬上跳到notify_url.jsp

下面是支付寶官方文件關於非同步通知頁面的描述的描述:


有一點需要注意的是跳到notify_url.jsp的url必須是公網客訪問的域名或則ip否則支付寶伺服器無法跳轉,除錯的時候可用第三方域名代理工具natapp(

https://natapp.cn/)

2.商家向用戶打錢呼叫的是批量轉賬介面,這個介面需要先在自己的瀏覽器裡安裝安全證書才能呼叫。

下面附上兩個demo