今天我们来看看一个超简单集成微信和支付宝的支付框架EasyPay(易支付), 初学者都能一看就会一写就对的集成支付的方法。
首先还是先上gitHub链接 GitHub - kingofglory/EasyPay: This is a repository for developers to easily use Alipay, WechatPay and UnionPay in Android projects. EasyPay(易支付)集成并高度封装了Android平台的微信支付,支付宝支付以银联支付。使用此库,开发者可以使用简单方便的api实现支付功能。
今天是11月7日, 首当其冲让我们恭喜EDG拿下S11总冠军,可喜可贺,不容易啊。
然后开始说今天的重点,Easypay,项目虽然最后更新时间是了,但是不影响他的好用简洁,现在依然很多应用在使用。
我们的教程现在是在已经申请好微信appid的前提下,如果还没申请好就先到微信开放平台去申请一下。接下来就一起看看使用步骤吧。
首先首先还是集成依赖库。
在你的项目下的app里的build.gradle文件中的dependencies下加入:
implementation 'com.xgr.easypay:EasyPay:2.0.5'(必须要的 框架的基类库)
implementation 'com.xgr.easypay:wechatpay:2.0.5'(非必须 微信支付)
implementation 'com.xgr.easypay:alipay:2.0.5'(非必须 支付宝支付)
除了必须要的基类库,支付宝支付和微信支付是分开的,需要什么就加入什么,这样更加的灵活同时也能够减小我们的代码体积。加入后点击一下右上角的Sync Now,这样我们的第一步集成就结束了。
接着就是第二步也是最后一步,使用!
首先先讲支付宝支付吧。通常我们都会通过接口向服务端拿到支付所需的信息(服务端一般是访问微信或支付宝得到支付信息),这个我们这里就不赘述了,因为每个项目的都不同,每个人也都有自己的方法,我们就说拿到支付信息后的步骤吧。支付宝的支付信息通常是一串字符串。
AliPay aliPay = new AliPay(); //实例化支付宝支付
AlipayInfoImpli alipayInfoImpli = new AlipayInfoImpli(); //构造支付宝订单实体
alipayInfoImpli.setOrderInfo("支付宝的支付信息"); //这里是填上向服务端获取的支付信息
//开始支付 第二个参数是context参数, 第四个参数是回调
EasyPay.pay(aliPay, this, alipayInfoImpli, new IPayCallback() {
@Override
public void success() {
//支付成功回调
Toast.makeText(mContext,"支付成功", Toast.LENGTH_SHORT).show();
}
@Override
public void failed(int code, String msg) {
//支付失败回调
Toast.makeText(mContext,"支付失败", Toast.LENGTH_SHORT).show();
}
@Override
public void cancel() {
//取消支付回调
Toast.makeText(mContext,"取消支付", Toast.LENGTH_SHORT).show();
}
});
如此,我们的支付宝支付就结束了,接下来我们讲讲微信支付。
使用EasyPay来进行微信支付我们甚至不用去写什么WXPayEntryActivity,非常牛,直接用就完事了。微信支付其实和支付宝支付大同小异,区别在于微信支付信息服务端返回给我们的通常是一个对象,我们需要处理这个对象转换成微信订单实体,其他就都相同了。
WXPay wxPay = WXPay.getInstance();//实例化微信支付
WXPayInfoImpli payInfo = new WXPayInfoImpli();//构造微信订单实体
//以下订单信息由服务端返回 我们得到服务端给的json转换成对象到这里填写到订单实体内即可
payInfo.setAppid("");
payInfo.setPartnerid("");
payInfo.setPackageValue("");
payInfo.setPrepayId("");
payInfo.setNonceStr("");
payInfo.setTimestamp("");
payInfo.setSign("");
EasyPay.pay(wxPay, this, payInfo, new IPayCallback() {
@Override
public void success() {
//支付成功回调
Toast.makeText(mContext,"支付成功", Toast.LENGTH_SHORT).show();
}
@Override
public void failed(int code, @Nullable String message) {
//支付错误回调
Toast.makeText(mContext,"支付错误", Toast.LENGTH_SHORT).show();
}
@Override
public void cancel() {
//取消支付回调
Toast.makeText(mContext,"取消支付", Toast.LENGTH_SHORT).show();
}
});
如此在appid和应用匹配的情况下,我们的微信支付也完成了,是不是非常简单,EasyPay除了支持微信和支付宝同时也支持银联支付,使用方法都是差不多的,如果有想看银联支付的小伙伴多的话我再写一篇银联支付的给大家看看。另外本人创建了个微信公众号 啊哈Android 打算专门用来和大家一起讨论分享自己开发工作过程中遇到的有趣方便的工具,如果能帮到或者你也有兴趣就来关注关注吧 谢谢谢谢 之后也还会在公众号发视频类教程,大家一起多多讨论吧 , 在公众号中回复“支付”就能看到这篇文章咯~~~~~