android 快捷支付sdk,Android 集成支付宝SDK实现快捷支付--填坑

刚给app集成了支付宝的android客户端快捷支付SDK,集成很简单,但是由于是涉及钱的问题,大家都会持谨慎态度,所以有很多小坑,粗心的话集成之路会很坎坷,对于集成步骤,我不想写了,没有必要,就看官方的SDK集成文档就好,内容也不多,对于集成步骤这个不推荐看博客,sdk本来就很精简了,真没有必要舍本逐末看别人写的博客,非常简单,仿照demo基本不许要用脑筋写代码,^_^。就记录一下遇到的坑吧,为以后有此需求的同行少走点弯路(程序员好辛苦):

1、对于参数一定要严格按照官方文档写的拼接,仔细一点不会有问题的,再不济图省事完全可以copy一下demo的拼接方法。

388b465686c0d64a4761c67d7418654e.png

对于跑不起来的一切bug,比如很常见又让人摸不着头脑的“header too long”debug出来错误信息会是

“sdkdemo java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0D07207B:asn1 encoding routines:ASN1_get_object:header too long“不要怀疑不要犹豫不要遐想,赶紧回过头来检查参数拼接,包括常量,那么又有了第二个问题。

2、

public static final String PARTNER = "";

public static final String SELLER = "";

public static final String RSA_PRIVATE = "";

public static final String RSA_PUBLIC = "";

这几个常量很容易写错,前两个第一个是签约后得到的商户pid,2088开头那个串。第二个填卖家支付宝账号要和传到网站的一样,介于可能会更改账号,建议seller也传2088那个串就ok(sdk说seller可以传支付宝账号或者pid):

第三四个粗心的同行很容易出错,RSA_PRIVATE这个参数用我们自己生成的那个,注意着个值在eclipse中时不能有换行,不能有空格,必须一行显示完全。我们自己生成的公玥上传支付宝网站,我们不用。这里我们的RSA_PUBLIC参数用的是支付宝给我们的公玥(商户签约支付宝网站获得),不要误用成自己生成的公玥。

这里其实私钥不能写在代码里的,写代码里很危险的,所以sign这个工作我们要很开心的推给服务器去做!所以我们拼好参数传给我们的服务器,让服务器签名,然后我们请求签名后的结果就好,拿到签名的sign拼接到后面加上signtype就ok了。

3、

PKCS8EncodedKeySpec privSpec = new PKCS8EncodedKeySpec(s_privateKeyIn1t);

KeyFactory keyFactory = KeyFactory.getInstance("RSA", "BC");

PrivateKey privateKey = keyFactory.generatePrivate(privSpec);

这个仅供参考,可能没用,对于签名失败的bug可以试试这样改,我们用demo的写法没有问题,可能是老版本sdk可能存在的bug

4、

// 调用银行卡支付,需配置此参数,参与签名, 固定值

// orderInfo += "&paymethod=\"expressGateway\"";

demo中这个参数注掉了,文档说是调用支付宝银行卡需要的参数,但是我用了这个参数后报错,也没查到什么原因,正自查这个问题,谁知道跪求留言。现在网上这方面资料没有人写,基本都是sdk文档的翻版,这个参数sdk文档没说明白,博客也没搜到,客服联系不上,哎。。。程序员苦啊。。。聊以记录,希望能对以后有此需求的人有所帮助。。。

5、对于第四个问题,终于有结果了,好不容易联系到客服,阿里的人说这个接口已经不推了,所以说银行卡这个接口参数

// orderInfo += "&paymethod=\"expressGateway\"";不能用是正常的,真是坑爹啊,这种变更竟然不在文档里写清楚,害的我浪费这么多时间找资料。。。希望不要再有人走弯路了,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值