最近在开发Android客户端需要集成支付宝款姐支付(无线),被各种公钥私钥绕的头晕故在这里记录一下,希望对其他人也有所帮助
本文使用的开发语言:
客户端:JAVA
服务端:PHP
1、确保你的支付宝商家帐号已经签约快捷支付(无线)
2、下载快捷支付(无线)SDK,目录结构如下图
注:openssl用来生成商户的公钥和私钥,其余的一目了然
2.1 生成一对公钥和私钥,然后打开公钥(rsa_public_key.pem)去除-----BEGIN PUBLIC KEY----------END PUBLIC KEY-----、空格以及换行符
2.2打开b.alipay.com登陆后点击我的商家服务-----查看PID和KEY------>点击上传RSA加密。把刚才处理好的公钥(rsa_public_key.pem)粘贴上去保存
3、客户端(Android)
客户端主要需要注意的是在keys.java中定义的PRIVATE和PUBLIC的值,PUBLIC对应的是支付宝公钥无需改动,PRIVATE对应的是刚才我们手动生成的商户私钥(rsa_private_key.pem)同样需要去除收尾和换行等,其它的参数相信大家都知道如何填写。
4、服务端(PHP UTF-8)
支付宝建议签名最好在服务端创建之后返回给客户端所以我们需要在服务端创建签名
把已经生成好的私钥替换PHP-UTF-8\key\rsa_private_key.pem 公钥无需改动
构建提交参数
服务端:partner、out_trade_no、subject、body、total_fee、notify_url、service、_input_charset、return_url、payment_type、seller_id、it_b_pay
客户端:partner、out_trade_no、subject、body、total_fee、notify_url、service、_input_charset、return_url、payment_type、seller_id、it_b_pay
在构建参数的时候切记需要和客户端的参数一样否则会报参数错误。
openssl的使用以win7系统为例,openssl这个文件夹在桌面
开始-》运行-》cmd
然后一次输入openssl目下说明文件里面的命令
RSA密钥生成命令
生成RSA私钥
openssl>genrsa -out rsa_private_key.pem 1024
生成RSA公钥
openssl>rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
将RSA私钥转换成PKCS8格式
openssl>pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
注意:“>”符号后面的才是需要输入的命令。
关于集成支付宝快捷支付(无线)的流程,布布扣,bubuko.com
原文:http://blog.csdn.net/sobeautiy/article/details/38019567