很久都没更新过博客了,一来是最近在搞Flutter,二来是有很多事情需要做。就在几天前我开源了一个名叫BestPay的库,使用它可以在Android上非常方便的接入三方支付SDK(微信,支付宝),但未来还会支持更多。这篇文章准备和大家聊一聊Android上常见的支付接入与使用方式。

一、微信支付

1.1、官方版

相信大家都接入过微信支付,那酸爽也是体会过的吧。在这里我简单介绍一下微信支付的官方集成过程:

  1. Gradle中添加依赖
  2. 创建wxapi包,并创建名字叫做WXPayEntryActivityActivity
  3. 支付结果也分情况吧,支付成功,支付失败,支付取消等,你需要自己在WXPayEntryActivity里面去判断
  4. App中也许不止一处用到支付吧,需要在WXPayEntryActivity里面判断支付的type,针对不同场景做不同处理
  5. 都在WXPayEntryActivity处理支付结果不好吧,你可能又要引入EventBus等将支付结果告知业务Activity
  6. 请求服务器获取支付所需的字段值
  7. 创建IWXAPI,创建PayReq,开始各种设置支付参数值,最终调用sendReq()方法调起支付

这样是真的麻烦,你说麻烦点就麻烦点吧,还让我必须在项目的package下创建wxapi,并新建名字必须叫WXPayEntryActivity的文件,这对于有强迫症的老哥来说,简直不能忍呀!如果你是第一次集成微信支付,去看官方文档,也会让你怀疑人生。

1.2、BestPay

如果你是用了BestPay,它能让你实现1分钟集成支付,在这里我简单介绍下用BestPay继承微信支付的过程,请自行与官方集成方式对比:

  1. Gradle中添加BestPay依赖
  2. 注解配置支付参数所在实体类以及支付所需参数
  3. 请求服务器获取支付所需字段值,BestPay.wxPay(model,listener)调起支付,listener对三种状态(成功,失败,取消)做了回调

你没看错,就是这么简单,真的就是这么简单。详细用法就不再这里说明了,大家可自行访问项目github主页查看详细使用说明:github传送门

二、支付宝支付

2.1、官方版

相比微信支付,支付宝支付就显得友好不少,但是仍然有许多不方便之处,比如需要自己做线程切换。下面我简单的介绍下支付宝官方集成过程:

  1. 下载并引入官方版提供的aar
  2. 添加所需权限(3个):android.permission.INTERNETandroid.permission.ACCESS_NETWORK_STATEandroid.permission.ACCESS_WIFI_STATE
  3. 请求服务器获取支付所需的订单数据,服务器会返回一个String类型的值
  4. 创建PayTask,开启新线程,payV2()方法调起支付,等待支付结果的返回
  5. 处理返回结果,切换至主线程更新UI等操作

明显比微信支付简单不少,但还有比这更简单的方式,那就是使用BestPay

2.2、BestPay

如果你集成了BestPay,那么使用支付宝支付将变得非常简单,只需要以下两步即可完成:

  1. 请求服务器获取支付所需的订单数据,服务器会返回一个String类型的值
  2. 调用BestPay.aliPay(context,orderInfo,listener)方法即可调起支付,同样listener对三种状态(成功,失败,取消)做了回调,并且这些回调都是运行在主线程!

我就问你爽不爽?同样详细的使用方法在这里就不举例说明了,大家可以去Github查看详细使用介绍。

好了,介绍到这里就结束了,欢迎大家使用以及给我start,非常感谢!跳转至BestPay项目主页



我的开源库      开源库

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!