当前位置:   article > 正文

Android端接入微信支付_安卓掉起支付接入微信支付并接受支付结果

安卓掉起支付接入微信支付并接受支付结果

1、接入微信SDK

implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
  • 1

2、从公司业务后台拿到订单信息后调用微信SDK,发起微信支付

		//orderInfo 业务后台的数据
    public void pay(Activity a, WeChatPayOrderInfo orderInfo) {
        //需要一个注册微信支付的APPID
        WXUtil.getInstance(a).getApi().registerApp("wx_appid");
        try {
            PayReq request = new PayReq();
            request.appId = LoginConfig.getAPP_ID_WX();
            request.partnerId = orderInfo.getPtn();
            request.prepayId = orderInfo.getOi();
            request.packageValue = orderInfo.getOds();
            request.nonceStr = orderInfo.getNes();
            request.timeStamp = String.valueOf(orderInfo.getTtp());
            request.sign = orderInfo.getSn();
            WXUtil.getInstance(a).getApi().sendReq(request);
        } catch (Exception e) {
            e.printStackTrace();
            Log.e("解析异常:" + e.toString());
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

3、在包名.wxapi目录下,创建一个WXPayEntryActivity.java界面,别忘了需要在Manifest.xml里面注册activity

public class WXPayEntryActivity extends AppCompatActivity implements IWXAPIEventHandler {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        try {
            boolean result = WXUtil.getInstance(this).getApi().handleIntent(getIntent(), this);
            if (!result) {
                ILog.e("参数不合法,未被SDK处理,退出");
                finish();
            }
        } catch (Exception e) {
            e.printStackTrace();
            ILog.e("e:" + e.getMessage());
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        WXUtil.getInstance(this).getApi().handleIntent(data, this);
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);
        WXUtil.getInstance(this).getApi().handleIntent(intent, this);
        finish();
    }

    @Override
    public void onReq(BaseReq baseReq) {
    }

    @Override
    public void onResp(BaseResp baseResp) {
        ILog.e("baseResp:" + baseResp.getType());
        if (baseResp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {//微信支付
            PayResp resp = (PayResp) baseResp;
            switch (baseResp.errCode) {
                case BaseResp.ErrCode.ERR_OK://支付成功
                    Log.e("微信支付成功");
                    this.finish();
                    break;
                case BaseResp.ErrCode.ERR_USER_CANCEL:
                case BaseResp.ErrCode.ERR_COMM:
                case BaseResp.ErrCode.ERR_SENT_FAILED:
                case BaseResp.ErrCode.ERR_AUTH_DENIED:
                case BaseResp.ErrCode.ERR_BAN:
                case BaseResp.ErrCode.ERR_UNSUPPORT:
                    Log.e("微信支付失败:" + resp.errCode);
                    this.finish();
                    break;
            }
        }
    }

    @Override
    public Resources getResources() {
        Resources res = super.getResources();
        Configuration config = new Configuration();
        config.setToDefaults();
        res.updateConfiguration(config, res.getDisplayMetrics());
        return res;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67

到此微信支付就完成了!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/989114
推荐阅读
相关标签
  

闽ICP备14008679号