支付宝移动支付开发错误集锦

最近在做支付宝移动支付开发,在调起支付时总是报各种错,先后收到错误码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、如果上述都准确无误,请核对公钥生成的是否正确。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值