wap支付寶接口的問題


今天在支付寶接口開發時,遇到的兩個坑

第一個:

https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.8nHr4i&treeId=62&articleId=103740&docType=1

支付寶的PC版即時到賬接口中,發起的請求可帶此參數extra_common_param

公用回傳參數

String(100)

如果用戶請求時傳遞了該參數,則返回給商戶時會回傳該參數。

於是,不管在同步或者異步通知中,均可接收到此參數進行業務邏輯的處理

但是今天在wap版的開發中,遇到request。。。一大堆的參數時,總是報錯。然而奇怪的是,返回的參數驗簽卻是通過的。

百思不得其解。最后發現request["extra_common_param"]始終為空。。。。

最后找到https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.8JI7Bt&treeId=60&articleId=103698&docType=1

wap的支付接口中,果然沒有此參數。

(因為wap版的官方demo中發起請求沒有MD5的簽名方式,於是就照搬了web版的請求方式,當然。這其中就含有了extra_common_param參數的設置,所以一開始對驗簽通過。卻報reques為空的錯誤深深的搞得抓狂)

問了客服,我說微信支付有此相同參數,web版也有此參數,為什么wap就沒了呢?   【內心是抓狂的】

最后客服直接說,不能已經給過建議了么?【內心是崩潰的】

他給到的建議是一,寫在body中,但這樣買家付款的時候也會看到。

二。寫在notify_url的?后面。但同樣的,在驗簽的時候,這個url需要保證和提交時所設置的那個一樣。

所以最后只能靠自己了。提交訂單時就將相關信息寫入數據庫,在付款成功后,根據此訂單號去更改其狀態

第二個:

手機支付。微信中提起發送請求時,總是正確的。

在測試完手機瀏覽器中的支付寶支付時,我登錄賬號的也是對的

在別人進行支付時,就是錯的。收銀台顯示的金額總是0.00(這個金額是發起請求時支付寶再顯示出來)

於是就奇怪了。。。微信支付和支付寶支付所提交請求的參數都是來源於同一個代碼,支付金額,body等什么的。

而且提交后,打印出來的參數也是沒問題的。

又是無限抓狂中。最后,我把自己的支付金額0.01的設置取消掉后[if id=6223 then total_pay='0.01' else total_pay=model.total_pay] 改為 [total_pay=model.total_pay]

同其他人支付時出現的問題一樣,這次我自己也重現了此問題。

最后的最后,終於想到了,數據是從數據庫讀出來的,這個字段是decimal,小數點后有4位。。。

而發起的支付寶請求只要小數點后兩位。雖然它是string類型。。。。

total_fee 交易金額 String 該筆訂單的資金總額,單位為RMB-Yuan。取值范圍為[0.01,100000000.00],精確到小數點后兩位。

我把金額處理后。問題終於解決。

微信沒有問題是因為它的單位是分。也就是一分錢也是整型的,提交給微信的數據是1

本來6點半准時下班。然而此時已經是8點半了。

 

 

支付寶,知托付!!!謝謝你哦


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM