最简单的Android微信支付集成

由于模拟器不能调起微信支付,所以用手机截几张图,可以看到,可以成功调起支付,并能成功支付

集成过程(如果你有任何疑惑,可以提issue)

一 添加依赖

官方文档见这里

compile 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'

二 注册APPID

官方文档见这里

final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);

// 将该app注册到微信

msgApi.registerApp("wxd930ea5d5a258f4f");

三 配置签名

配置你在微信开放平台注册时填写的签名

signingConfigs {
        debug {
            storeFile file("你的keystore路径")
            storePassword "xxx"
            keyAlias "xxx"
            keyPassword "xxx"
        }
        release {
            storeFile file("你的keystore路径")
            storePassword "xxx"
            keyAlias "xxx"
            keyPassword "xxx"
        }
}

四 调起支付

详细用法见项目PayActivity,建议支付前先检查微信版本是否支持支付

//检查微信版本是否支持支付
boolean isPaySupported = api.getWXAppSupportAPI() >= Build.PAY_SUPPORTED_SDK_INT;

五 支付回调

参照微信SDK Sample,在net.sourceforge.simcpux.wxapi包路径中实现WXPayEntryActivity类(包名或类名不一致会造成无法回调),在WXPayEntryActivity类中实现onResp函数,支付完成后,微信APP会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,判断返回错误码,支付成功则调用“服务商提供的查询接口”获取到支付状态再展示用户实际支付结果。注意一定不能以客户端返回作为用户支付的结果,应以服务器端的接收的支付通知或查询API返回的结果为准。

以上这句话取自这里

@Override
    public void onResp(BaseResp resp) {
        Log.d(TAG, "onPayFinish, errCode = " + resp.errCode);

        if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
//          AlertDialog.Builder builder = new AlertDialog.Builder(this);
//          builder.setTitle(R.string.app_tip);
//          builder.setMessage(getString(R.string.pay_result_callback_msg, String.valueOf(resp.errCode)));
//          builder.show();
            //参考这里 https://www.jianshu.com/p/c97639279d2e
            if (resp.errCode == 0){
                Toast.makeText(this, "支付成功", Toast.LENGTH_SHORT).show();
            }else {
                Toast.makeText(this, "支付失败,请重试", Toast.LENGTH_SHORT).show();
            }
            finish();
        }
    }

Manifest和网络权限不要忘记配置哦

福利

关于自定义回调见这篇文章

如果以上都配置了还是不成功,请给我提Issue

GitHub地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值