Android-Sun-Framework(四)--支付终极封装支持微信回调

一. 写在前面

Android-Sun-Framework是一个Android组件化开发框架,可用于中大型项目。对应框架的一系列文章包含内容:设计思路、实现、如何使用等。我的宗旨是:授之以渔而不是授之以鱼! 同时我也感谢大家对我的支持。

欢迎Star or Follow我的GitHub

欢迎搜索微信公众号SamuelAndroid关注我,定期推送原创文章和代码。

系列文章:

Android开发框架Android-Sun-Framework(一) Android开发框架Android-Sun-Framework(二) Android开发框架Android-Sun-Framework(三)

支付几乎是每个APP都要支持的功能,对于没有相关经验的童鞋,要花不短的时间去实现,尤其是微信支付的回调方式,让初学者更是难上加难,本文章封装后的支付,只需两步即可完成支付,且支持微信支付回调,后面会增加支付宝支付。无图无真相:

二. 引入

由于当前library还未发布到jcenter,所以需要引入源码,后面会陆续把框架中的基础库发布到jcenter,方便大家使用。如果直接使用我的开发框架则,只需要在对应模块中的依赖增加以下配置即可:

compile project(':library:pay')

三. 配置

看过我前面的文章都知道,框架中的配置中心(config.gradle)里面放了各种配置。所以支付的配置当然也会统一放到这里:

    //支付
    wxpay = [
            APP_ID: "wxfac2b15cf89555"
    ]

四. 使用

前面介绍的基础库统一使用的建造者模式,为了统一,支付同样也是使用建造者模式,调用方式如下:

String appid = "";
String partnerid = "";
String prepayid = "";
String noncestr = "";
String timestamp = "";
String sign = "";
WechatPayReq wechatPayReq = new WechatPayReq.Builder()
.with(this) //activity实例
.setAppId(appid) //微信支付AppID
.setPartnerId(partnerid)//微信支付商户号
.setPrepayId(prepayid)//预支付码
.setNonceStr(noncestr)
.setTimeStamp(timestamp)//时间戳
.setSign(sign)//签名
.setOnPayListener(new WechatPayReq.PayListener() {
          @Override
          public void onPaySuccess() {
          }
          @Override
          public void onPayFailure(int errorCode, String errStr) {
          }
}).create();
WechatPayAPI.getInstance().sendPayReq(wechatPayReq);

五. 总结

只需要以上几步即可完成微信支付的接入,并且支持回调。同时支付回调移到当前调用的Activity中,和支付宝支付统一。

欢迎搜索微信公众号SamuelAndroid关注我,定期推送原创文章和代码。

公众号