android 支付宝和微信支付封装,af-pay 对支付宝和微信支付 sdk 的二次封装,极大简化支付过程 @codeKK Android开源站...

af-pay.svg?branch=master

af-pay.svg?maxAge=3600

af-pay.svg?maxAge=86400

af-pay.svg

af-pay 原为QuickAF(一个快速的 Android 开发框架)中的支付组件,现已抽取出来作为一个单独的 Android 支付库, 支持支付宝,微信支付,并且同时支持客户端下单与服务端下单。

0.2.0 及其以上版本支持银联支付,如需使用银联支付,请点击这里。

新的版本(0.1.0 及其以上)没有提供纯净版,如果您使用的是 0.1 以下版本,请移步旧文档

在 Android 中直接使用

引入完整版本,包含支付平台相关的 jar 包dependencies {

compile 'cn.ieclipse.af:af-pay:0.2.0'

}

使用 jitpack.io 仓库

1,在工程根目录中的 build.gradle 中添加 jitpack 仓库

allprojects {

repositories {

...

maven { url 'https://jitpack.io' }

}

}

2,在 app 模块中添加依赖

dependencies {

compile 'com.github.Jamling:af-pay:master-SNAPSHOT'

}

常见问题

因支付宝 SDK 的最低 SDK 版本改为了 16,如果 app 模块最低仍为 14,需要在 AndroidManifest.xml 中,添加以下声明

示例代码

支付宝支付

客户端下单方式同时支持支付宝 sdk v1 和 2,建议使用 v2。服务端下单方式仅支持 v2。如果申请了支付宝支付,可以修改相关配置,然后运行本 demo,可以支付成功。

private void doAlipay(String orderInfo) {

final Activity activity = this;

Alipay alipay = new Alipay(activity);

alipay.setPayListener(new Alipay.PayListener() {

@Override

public void onPaySuccess(PayResult payResult) {

showToast(activity, "支付成功");

}

@Override

public void onPayWaiting(PayResult payResult) {

showToast(activity, "支付结果确认中...");

}

@Override

public void onPayCancel(PayResult payResult) {

showToast(activity, "您已取消支付");

}

@Override

public void onPayFailure(PayResult payResult) {

showToast(activity, "支付失败\n" + payResult.getMemo());

}

});

if (TextUtils.isEmpty(orderInfo)) {

// set v1 config

Alipay.DEBUG = true;

Alipay.Config.appId = "";

Alipay.Config.rsa_private = "";

Alipay.Config.rsa_public = "";

Alipay.Config.notify_url = "app/pay/alipay_notify.do";

if (!alipay.check()) {

showToast(activity, "缺少配置,无法支付");

return;

}

String trans_order_id = OrderInfoUtil2_0.genOutTradeNo();

Map map = OrderInfoUtil2_0.buildOrderParamMap(trans_order_id, "测试支付", "测试商品 1,测试商品 2",

String.valueOf(0.01f), null);

orderInfo = OrderInfoUtil2_0.getOrderInfo(map);

alipay.payV1(orderInfo);

}

else {

alipay.payV2(orderInfo);

}

}

微信支付

private void doWxpay(String orderInfo) {

final Activity activity = this;

// 获取支付类

Wxpay wxpay = Wxpay.getInstance(activity);

// 设置支付回调监听

wxpay.setPayListener(new Wxpay.PayListener() {

@Override

public void onPaySuccess(BaseResp resp) {

showToast(activity, "支付成功");

}

@Override

public void onPayCanceled(BaseResp resp) {

showToast(activity, "支付取消");

}

@Override

public void onPayFailure(BaseResp resp) {

showToast(activity, "支付失败");

}

});

// 这里是服务端下单,内容是统一下单返回的 xml

if (!TextUtils.isEmpty(orderInfo)) {

PayReq req = OrderInfoUtil.getPayReq(orderInfo);

wxpay.pay(req);

}

else { // 客户端下单

Wxpay.DEBUG = true; // 开启日志

// API 密钥,在微信商户平台设置

Wxpay.Config.api_key = "32 位的字串";

// APPID,在微信开放平台创建应用后生成

Wxpay.Config.app_id = "wx...";

// 商户 ID,注册商户平台后生成

Wxpay.Config.mch_id = "14...";

// 支付结果异步通知接口,由后台开发提供

Wxpay.Config.notify_url = "http://www.ieclipse.cn/app/pay/wxpay_notify.do";

// 创建统一下单异步任务

Wxpay.DefaultOrderTask task = new Wxpay.DefaultOrderTask(wxpay);

// 这个商户订单号,由后台返回,在这里随便生成一个

String outTradeNo = OrderInfoUtil2_0.genOutTradeNo();

// 设置统一下单的请求参数

task.setParams(OrderInfoUtil.buildOrderParamMap(outTradeNo, "测试支付", "", "1", null, null, null));

task.execute();

}

}

版本记录

0.2.0

支付银联支付 (aar sdk 3.5.4)

添加一些设计资源

0.1.0

使用支付宝最新的 aar sdk 15.5.9

使用微信支付 sdk 5.1.6

0.0.2

微信依赖改为com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+

说明

因本 demo 未申请支付宝支付和微信支付,所以在示例中无法支付成功。

af-pay 原来是包含在QuickAF中,建议使用QuickAF的同学们更新依赖。

日志 tag 为pay_sdk,可以设置Wxpay.DEUBG = true或Alipay.DEUBG = true来开启日志。

更多请加入

quickaf_group.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值