支付宝快捷支付开发

转载请标明出处:http://blog.csdn.net/u014084504/article/details/42104035

公司最近要在项目中加入购物车功能,提到购物车那就自然少不了支付宝的身影啦。下面我们就来探讨一下如何在Android快速集成支付宝SDK。

支付宝的SDK目前已经更新到了2.0版本,这次的SDK相比上个版本的SDK来说,代码更佳简洁了,集成起来更加的方便快捷。

摘要:准备工作

如果是在公司开发,可以让相关部门和支付宝签约,申请一个卖家支付宝账号,可能要审核3-5个工作日,审核通过后支付宝会以邮件或者电话的方式提醒你的,所以不要担心什么时候才能审核通过。

1:下载支付宝官方SDK

https://b.alipay.com/order/techService.htm

打开上面链接,下载下面画红线部分的SDK,不要下载错了,下面是列出了支付宝SDK支持支付的各种方式


下载完成解压之后会得到如下的结构目录


打开移动支付接口SDK2.0标准版,找到DEMO下面的客户端demo下面的支付宝移动支付Android版,解压之后的目录结构如下


alipay-sdk-common中是我们要使用到的jar文件,alipay_demo是官方提供的demo(该demo并不能直接运行,要自己重新配置)

2:在我们强大的eclipse中新建一个项目,然后在清单文件中加入如下授权


在将我们上面alipay-sdk-common中的三个jar文件拷贝到我们项目下的libs目录下,结构图如下


下面我们就可以用代码实现啦

3:代码实现

这里直接使用官方提供的布局文件啦,(*^__^*) 嘻嘻……


点击支付时 我们就直接调用支付宝相关接口进行支付,点击检查账户时就是检查当前环境下是否有可用的支付宝账号,可有可无。


上面贴出来的代码就是调用支付宝的核心代码,我们在依次来看下其中的各个方法

第83行的getOrderInfo


该方法中有两个参数,我们这里要说明一下,第一个是第157行的合作者身份ID(PARTNER)这个参数是我们在支付宝账号审核通过之后登陆支付宝后点击点击获取PID/key

之后,支付宝给我们分配的

https://b.alipay.com/order/techService.htm   如下图红色部分



第二个就是第160行的卖家支付宝账号,这个没啥说的,就是我们申请的支付宝账号。

第三个是第170行的服务器异步通知页面路径,首先我们用支付宝支付之后,支付宝会返回给我们两个通知,一个是同步的,就是我们点击支付后支付宝直接反馈给我们客户端的信息,我们可以直接拿到,根据反馈的结果可以初步判定该次交易是否成功,第二个就是服务器异步的通知,这个异步的通知是支付宝的服务器端发给我们服务器端的信息,我们在客户端是直接获取不了的,那支付宝的服务器怎么知道我们服务器的路径呢,那就是这参数的作用了,我们给支付宝服务器一个路径,它就会在订单状态改变的时候给我们服务器端一个反馈,告诉服务器这次交易的状态,如果服务器结果判定该次交易成功了,就必须返给支付宝服务器一个success,要不服务器会一直给我们异步通知,因为它不知道该次交易是否完成了(一般情况下25小时内8次通知,频率一般是2m 10m 10m 1h 2h 6h 15h),我们一般会在收到异步通知时,对订单的状态进行更新。

还有一个就是162行的getOutTradeNo方法,这个方式就是生成一个唯一的订单号


讲完了这个方法里面的参数,我们回过头来看下我们的支付方法,在支付方法第84行我们可以看到

String sign = sign(orderInfo);

那么这个sign方法里又干了些什么呢,下面我们就来看下


可以看出这个方法非常简单,就一行代码,那这个SignUtils又是什么呢 ,这个是支付宝SDK中提供给我们的一个工具类,可以在官方的demo中找到,代码我就不贴出来了

我们可以看到这个方法中有一个RSA_PRIVATE 这个是什么东西呢,这个东西就是我们生成的商户的私钥,下面我们来看下该如何生成他呢

我们将下载好的SDK解压后在DEMO文件下会看到openssl文件夹,打开它目录下面的bin文件夹,然后运行openssl.exe文件,如下图


输入“genrsa -out rsa_private_key.pem 1024”命令,回车后,在当前bin文件目录中会新增一个rsa_private_key.pem文件,其文件为原始的商户私钥(请妥善保存该文件,PHP开发语言中需要使用该文件),以下为命令正确执行截图:


输入“rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem”命令回车后,在当前bin文件目录中会新增一个rsa_public_key.pem文件,其文件为原始的商户公钥(请妥善保存该文件,PHP开发语言中需要使用该文件),以下为命令正确执行截图:


输入命令“pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt”并回车,生成PKCS8编码的私钥


右键点击openssl窗口上边边缘,选择“编辑→标记”,选中要复制的文字


以上白色部分的内容就是我们上面说的RSA_PRIVATE 这个参数的值,注意着个值在eclipse中时不能有换行,不能有空格,必须一行显示完全

下面还有非常重要的一步就是要将上传商户公钥,我们要将上面生成的商户公钥上传,

上传地址需要登录



点击查看密钥,因为我这里已经上传过了,所以是查看,


然后点击保存,我这里是修改,然后在点击查看支付宝公钥,这里的公钥就是我们程序里的RSA_PUBLIC


上面两句直接在activity中声明即可。

支付主方法中第86行的getSignType方法如下


点击检查账户执行下面逻辑


然后我们定义一个handler来处理请求


好了到这里Android接入支付宝就差不多了,如果那有写的不清楚的可以讨论一下(累死人啊奋斗

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值