支付寶移動支付開發錯誤集錦

最近在做支付寶移動支付開發,在調起支付時總是報各種錯,先後收到錯誤碼ALI164,ALI38173等錯誤編碼,其實當收到這些錯誤時多數是因爲傳入的參數和簽名校驗不正確。在開發時要注意以下幾點:

1、用於簽名的參數儘量不要用字符串拼接的方式,通過Map來存儲,然後調用支付寶DEMO裏提供的方法 AlipayCore.paraFilter(params)來進行排序過濾,然後使用AlipayCore.createLinkString(sParaNew)方法進行拼接例如:

Map<String, String> params =new HashMap<String, String>();
params.put("partner","\""+AlipayConfig.partner+"\"");
params.put("out_trade_no","\""+superOrderCode+"\"");

……以下參數省略

Map<String, String> sParaNew = AlipayCore.paraFilter(params);

   //獲取待簽名字符串
String preSignStr = AlipayCore.createLinkString(sParaNew);

2、參數裏的值是需要帶引號,例如:

params.put("partner","\""+AlipayConfig.partner+"\"");    這裏通過轉義字符將引號寫入。

3、參數中的所有值除了生成的sign需要做URLEncoder.encode編碼,其餘的值都不需做此編碼,常常看見有人把裏面存在的URL使用此編碼處理,比如回調地址,在支付寶中這樣是不可以的,但是最後生成的sign一定要做此編碼。

4、發送的參數的順序與用於簽名的參數順序必須一樣。

5、sign和sign_type兩個參數不用於簽名計算,有好多人經常會把sign_type也用於簽名計算。

6、如果上述都準確無誤,請覈對公鑰生成的是否正確。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章