很久都没更新过博客了,一来是最近在搞Flutter,二来是有很多事情需要做。就在几天前我开源了一个名叫
BestPay
的库,使用它可以在Android上非常方便的接入三方支付SDK
(微信,支付宝),但未来还会支持更多。这篇文章准备和大家聊一聊Android上常见的支付接入与使用方式。
一、微信支付
1.1、官方版
相信大家都接入过微信支付,那酸爽也是体会过的吧。在这里我简单介绍一下微信支付的官方集成过程:
Gradle
中添加依赖- 创建
wxapi
包,并创建名字叫做WXPayEntryActivity
的Activity
- 支付结果也分情况吧,支付成功,支付失败,支付取消等,你需要自己在
WXPayEntryActivity
里面去判断 App
中也许不止一处用到支付吧,需要在WXPayEntryActivity
里面判断支付的type
,针对不同场景做不同处理- 都在
WXPayEntryActivity
处理支付结果不好吧,你可能又要引入EventBus
等将支付结果告知业务Activity - 请求服务器获取支付所需的字段值
- 创建
IWXAPI
,创建PayReq
,开始各种设置支付参数值,最终调用sendReq()
方法调起支付
这样是真的麻烦,你说麻烦点就麻烦点吧,还让我必须在项目的package下创建wxapi
,并新建名字必须叫WXPayEntryActivity
的文件,这对于有强迫症的老哥来说,简直不能忍呀!如果你是第一次集成微信支付,去看官方文档,也会让你怀疑人生。
1.2、BestPay
如果你是用了BestPay
,它能让你实现1分钟集成支付,在这里我简单介绍下用BestPay继承微信支付的过程,请自行与官方集成方式对比:
Gradle
中添加BestPay
依赖- 注解配置支付参数所在实体类以及支付所需参数
- 请求服务器获取支付所需字段值,
BestPay.wxPay(model,listener)
调起支付,listener
对三种状态(成功,失败,取消)做了回调
你没看错,就是这么简单,真的就是这么简单。详细用法就不再这里说明了,大家可自行访问项目github
主页查看详细使用说明:github传送门
二、支付宝支付
2.1、官方版
相比微信支付,支付宝支付就显得友好不少,但是仍然有许多不方便之处,比如需要自己做线程切换。下面我简单的介绍下支付宝官方集成过程:
- 下载并引入官方版提供的
aar
- 添加所需权限(3个):
android.permission.INTERNET
、android.permission.ACCESS_NETWORK_STATE
、android.permission.ACCESS_WIFI_STATE
- 请求服务器获取支付所需的订单数据,服务器会返回一个
String
类型的值 - 创建
PayTask
,开启新线程,payV2()
方法调起支付,等待支付结果的返回 - 处理返回结果,切换至主线程更新
UI
等操作
明显比微信支付简单不少,但还有比这更简单的方式,那就是使用BestPay
。
2.2、BestPay
如果你集成了BestPay
,那么使用支付宝支付将变得非常简单,只需要以下两步即可完成:
- 请求服务器获取支付所需的订单数据,服务器会返回一个
String
类型的值 - 调用
BestPay.aliPay(context,orderInfo,listener)
方法即可调起支付,同样listener
对三种状态(成功,失败,取消)做了回调,并且这些回调都是运行在主线程!
我就问你爽不爽?同样详细的使用方法在这里就不举例说明了,大家可以去Github
查看详细使用介绍。
好了,介绍到这里就结束了,欢迎大家使用以及给我start,非常感谢!跳转至BestPay项目主页
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!