1. 程式人生 > >微信支付報"呼叫支付jsapi缺少引數 total_fee",實際Java統一支付介面,返回“body引數長度有誤”

微信支付報"呼叫支付jsapi缺少引數 total_fee",實際Java統一支付介面,返回“body引數長度有誤”

之前幫朋友做過一次微信支付,記得裡面到處都是坑,今天朋友說出現問題提了:商品選擇3個及3個以內的時候,正常支付,選擇4個及以上的時候,就會支付失敗。並傳給我2張截圖:

 

明顯報錯資訊:呼叫支付jsapi缺少引數 total_fee

基於之前對微信支付的瞭解,這個報錯參考意義並不大,很多種原因都會出現這個結果,

所以最好的辦法就是輸出介面呼叫的結果:

果然發現問題,是因為這個body引數有問題!

那麼這個引數怎麼會出現長度問題呢?看一下官方文件給出的解釋:

當時開發的時候,參考這個文件介面規則-引數規定,把購買的商品名全部連在一起當作body引數的,忽略了引數長度問題;

實際上在AP列表-統一下單有引數說明的:

至此,問題定位好了,將引數內容改為一個固定的內容,解決了這個隱藏了很久的bug;