手把手教你怎么使用支付宝快捷支付android版demo

今天折腾了一下午的支付宝快捷支付的android集成,从官网上下载的demo直接跑是会报错的,犯了很多傻逼的错误,因此写个文章记录一下。

1.申请服务

首先你得申请支付宝的快捷支付的服务,这个我就不多说了,申请过程相当麻烦,我重新提交了好几次~~。这里有个误区,开通快捷支付是不需要去支付宝开放平台申请的,那边的是针对你的应用或者网站的一些服务的申请,如果你只要快捷支付,那那边的就不需要申请了。

2.下载开发资料

这个在支付宝的签约管理里面找找就能找到,里面会有一些技术文档和一些demo,外加一个用来生成公钥私钥各种钥的工具(等会儿要用)。

3.密钥生成与添加

点查看PID|Key,进去应该会让你输入你的支付密码,确认你的身份。进入之后应该能看到这些

PID和Key
合作者身份(PID)
XXXXXXXXXXXX  复制
合作伙伴密钥管理 安全校验码(Key)
默认加密: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 复制 重新设置密钥
RSA加密:  添加密钥 |  查看支付宝公钥
DSA加密:  添加密钥 |  查看支付宝公钥
(卧槽,csdn的编辑器这么吊,我从网页上复制内容过来粘贴,直接把网页样式也放进来了,吊吊吊) 好了,这边的先放着,咱们掏出我们刚才下载的开发资料,找到里面的DEMO--->openssl。 把里面的“生成命令.txt”打开,里面有三个命令,打开之后放在一边。然后再打开bin文件夹,运行openssl.exe, 打开就知道,黑底白字的框框,它在等你用一行行命令来满足它。那行,先用 genrsa -out rsa_private_key.pem 1024
来试试,“嗯”,你会发现你的bin文件夹下多了一个rsa_private_key.pem文件 再来一发: openssl>rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
“啊”,你会发现你bin文件夹下多了一个rsa_public_key.pem文件 最后把最长最有力的弄进去: pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
"yamaidai!",你会发现他出来的是一大堆东西,而不是文件,是什么什么begin,中间一大堆东西,最后什么什么end 只要把中间那段复制一下就行了,随便写一个txt文件,暂时就叫做”博主真帅.txt“吧,保存下来 生成的两个文件都可以用记事本打开,里面的内容都跟你刚才在命令行里拉出来的差不多。然后到刚才让你打开的那个支付宝的界面上,点击 ”合作伙伴密钥管理”中的“添加密钥“,会出现一个框, 把你的rsa_public_key.pem中去掉-----BEGIN PUBLIC KEY-----

-----END PUBLIC KEY-----
中间的部分(记住哦,不要有换行哦,不然马云是不要你的key的)粘贴到浏览器弹出的框中,提交就行,如果出现格式错误提示的话看看换行是不是去掉了,或者你复制的不是rsa_public_key.pem里面的,看看清楚吧。 好了剩下的就是去android demo里面操作。 5.android demo参数设置 把你的”DEMO\客户端demo\alipay_demo“导入到你的一克立普斯里面,打开src,里面应该有5个.Java文件 。本屌天真的以为demo拿来都能跑的,跑了之后才发现自己太2了,点击支付后被爆(报)错了。 想想就知道前面生成的key文件肯定要用的。打开PayDemoActivity.java,把你的刚才从命令行里面复制下来的一大串字符串贴到RSA_PRIVATE后面,同样,不要换行,其他的参数也对应填写。 原来是: public static final String PARTNER = "";
public static final String SELLER = "";
public static final String RSA_PRIVATE = "";
public static final String RSA_PUBLIC = "";
现在是: public static final String PARTNER = "25465561516555";//去刚才上传密钥那个网页找”合作者身份(PID)“,复制就行
public static final String SELLER = "XXXXXXXXXX@XXXX.XXX";//收款人的账号,就填申请了个服务的支付宝账号就                                                                                         //行
public static final String RSA_PRIVATE = "XXXXXXXXXXXXXXX....(博主真帅.txt中的那串码,不要换行哦)";
public static final String RSA_PUBLIC = "";//这个本吊暂时没用到,所以没填
填完,ctrl + s,run一下,运气好的话,你就能支付成功了。but,本吊就是这么点儿背,偏偏报错,跟踪错误,不出意外的话你会到SignUtils.java里面,这一行: KeyFactory keyf = KeyFactory.getInstance(ALGORITHM);
通过找网上一些文章,找到了解决办法,把上面那行改成: KeyFactory keyf = KeyFactory.getInstance(ALGORITHM,"BC");//就在后面加一个”BC“参数
效果就是这么神奇,支付成功了,本吊的0.01元缓缓流入公司账户,为公司的财政收入做出巨大贡献,我的眼里泛起了泪花,既心疼又开心。事后高兴的跟老板要了一张报销单,把我的0.01元报销了。 本吊还在继续学习中,有要交流的可以再评论去大喊三声博主好帅,我立马回出现在你面前。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值