Android接入支付宝实现支付功能

作者:刘某人程序员

博客:http://blog.csdn.net/qq_26787115


Android接入支付宝实现支付功能

我本来是想直接讲Android支付这一块的,包括支付宝,微信,其他第三方整合支付等,但是微信开放平台他对我的账号做了限制,所有我今天就先把重心放在支付宝的支付上,也算是写得尽可能详细些吧,毕竟是第三方的SDK,只要我们耐心的阅读文档和开发引导,这个其实不是很难的,我也是没有用过支付宝的支付,但是我相信,你看完这篇博客,也会对他了如指掌的,好的,我们正文开始


一.准备步骤

1.登录官网

他的官网就是蚂蚁金服的开放平台了,我们可以访问 蚂蚁金服开放平台 ,并且注册账号进行登录


2.创建应用

如果你是现有的应用直接接入支付功能的话,可以不看这里,我这里是因为需要讲博客所有重新创建了一个项目并且在Android Studio里也重新创建了一个项目,Android Studio里创建的项目我把他叫做SimpleMall,简单商城的意思,那在开放平台我们又是如何去创建应用呢,点击-进入我的开放平台-应用,就可以看到应用管理了。我们点击创建应用

创建成果之后有很多的选项包括需要你上传

这些先不管,我们这个时候可以看到已经拿到了APPID: 2017062807585767,这样我们就可以继续下一步的准备了


3.签约

大部分的功能需要签约才能使用,很遗憾,我这个个体户就不行了


4.配置密钥

配置秘钥是支付这一环节很重要的因素,也是分了两个步骤,生成秘钥和配置秘钥,这里使用的RAS非对称加密

生成RSA秘钥:

https://docs.open.alipay.com/291/105971

我们按照文档上来,首先是下载工具了,这里有win和mac两个地址,我是win,下载下来是这个样子的

我们按照图中的配置拿到了公钥和私钥

那我们可以配置了,我们找到项目详情

然后这里是两种方式,我们选择的是RSA方式么其实哪种方式都是可以的

到这里,这个也配置好了


5.SDK 下载

到这里,我们就可以直接去下载他的SDK了SDK下载地址:

http://p.tb.cn/rmsportal_6680_WS_APP_PAY_SDK_BASE_2.0.zip

这个压缩包下载下来什么都有,要找到Android的部分


二.SDK集成

我们现在就开始来把jar集成进去,支付宝给我们提供的就是一个jar,我们放进我们的工程里面去

并且在我们的app/build.gradle里配置一下

这样Jar就集成好了,然后配置一下清单文件

并且添加权限

如大于等于Android6.0,还需要动态申请下权限

如果你的项目需要混淆,需要添加混淆规则

嗯,可以说得上是比较简单的,我们继续


三.支付接口调用

其实支付宝的调用还是比较简单的,我们来看一下我的调用方式

可以看到我们并没有多少代码,调用起来

但是还是提示有错误,我们来看一下他的返回值

这是因为我们这个应用并没有去签约功能,所有并没有这个权限,好的,但是起码可以看出我们已经可以调用支持包的支付了,那我们继续来了解他的功能吧


四.Api

首先我们看下他提供的OrderInfoUtil2_0这个工具类

而我们一开始就需要构建订单参数列表,就是这个方法

这个方法我们来解读一下吧,他其实就是构建一个Map的键值对,都有哪些内容呢

  • app_id(key)

  • biz_content(内容)

  • charset(编码)

  • method(方法)

  • sign_type(签名类型)

  • timestamp(时间戳)

  • version(版本)

这个demo里面可能都是写死了,但是如果我们真的要在实际应用中开发支付的话,这里要填写正确,我们主要关心的有方法和签名类型还有版本这三个

方法有几个类型,要注意一下

其次就是签名方式了,有两种,RSA和RSA2

最后就是版本,版本可以通过PayTask去获取

而关于biz_content,就需要你们自己去定义了,我们来看下全部的参数说明

当我们拿到map之后就可以转换成一个string作为请求信息了,可以看到我们使用的是这个方法

他的本质就是拼接出最后的订单信息,如图

好的,现在订单详情已经有了我们就可以把订单加密了

这里的加密主要还是用到了SignUtils

而SignUtils则启动了Base64

这些你都可以在我写的demo里获取到的,我们继续分析就是了,当加密成功之后他会返回一个sign的字符串给我,这就是加密信息,然后通过 订单信息 & 加密订单这种公式就拼接出商品信息

好的,我们的下单需要在异步中操作,也就是我们所见到的Runnable

在这里他同样的是构建一个PayTask 区调用payV2,里面的参数就是订单信息和一个boolean值,具体参数可以参考

好的,当我们拿到结果后通过Handler回到UI线程

这里其实PayResult只是把结果几个关键信息提取出来了

我们如果想看详细的结果,可以打印resultInfo,好的,关于返回参数,可以参考App支付同步通知参数说明:

https://docs.open.alipay.com/204/105302

好的,事实上在实际开发中,要做的准备工作并不只是这么点,毕竟涉及到支付这个敏感话题,我这边也只是个人商户,没办法给大家展示正确的结果了,可能有些疏漏,但是大体就是这样,比微信稍微要简单点,我们下次细聊下微信支付。


SimpleMall下载:

http://download.csdn.net/download/qq_26787115/9882847


一命二运三风水,四修阴德五读书!

刘桂林

微信号 : Android_LiuGuiLin

新浪微博:@刘某人程序员



  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值