Android 微信支付,授权,分享回调区分记录

我们做项目中避免不了和微信打交道,其中最常用的也就是授权登录与分享和支付了。

本篇文章记录这三个功能同时使用的时候,回调怎么来区分。因为每个功能都有自己的回调状态。前期集成与发送,资料很多了就不在这里记录了。

接收回调首先要写一个WXEntryActivity,实现IWXAPIEventHandler接口。

activity的oncreate方法中实例化IWAPI对象:

private IWXAPI api;
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        api = WXAPIFactory.createWXAPI(this, AppContant.APP_ID);
        api.handleIntent(getIntent(), this);
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);
        api.handleIntent(intent, this);
    }
然后就是实现接口中的onResp方法中来接收回调的消息。

下面看下代码:

@Override
    public void onResp(BaseResp resp) {
        if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
            // 支付

            int errCode = resp.errCode;
            if (errCode == -1) {
                Toast.makeText(getApplicationContext(), resp.errStr, Toast.LENGTH_SHORT).show();
                finish();
//                EventBus.getDefault().post("wx1");
            } else if (errCode == 0) {
//                EventBus.getDefault().post("wx0");
                Toast.makeText(getApplicationContext(), "支付完成", Toast.LENGTH_SHORT).show();
                this.finish();
            } else {
                Toast.makeText(getApplicationContext(), "支付失败", Toast.LENGTH_SHORT).show();
                finish();
            }
        }else if (resp.getType()==ConstantsAPI.COMMAND_SENDMESSAGE_TO_WX){
            // 分享

            int result = 0;
            switch (resp.errCode) {
                case BaseResp.ErrCode.ERR_OK:
                    result = 分享成功;
                    break;
                case BaseResp.ErrCode.ERR_USER_CANCEL:
                    result = 取消分享;
                    break;
                case BaseResp.ErrCode.ERR_SENT_FAILED:
                    result = 分享失败;
                    break;
                default:
                    result = 未知原因;
                    break;
            }
            Toast.makeText(getApplicationContext(), getString(result), Toast.LENGTH_SHORT).show();
            finish();

        }else if(resp.getType()==ConstantsAPI.COMMAND_SENDAUTH){
            // 登录

            int result = 0;
            switch (resp.errCode) {
                case BaseResp.ErrCode.ERR_OK:
                    // 授权成功

                    result = R.string.wechat_login_success;

                    // 发送事件通知登陆界面
                    EventBus.getDefault().post(resp);
                    break;
                case BaseResp.ErrCode.ERR_USER_CANCEL:
                    // 授权取消
                    result = 取消授权;
                    break;
                case BaseResp.ErrCode.ERR_AUTH_DENIED:
                    // 授权被拒绝
                    result = 授权被拒绝;
                    break;
                default:
                    // 未知错误
                    result = 未知原因;
                    break;
            }
            Toast.makeText(getApplicationContext(), getString(result), Toast.LENGTH_SHORT).show();
            finish();
        }
    }
代码中我使用了EventBus来发送事件,在对应页面去接收消息,大家可以使用自己的方式去实现,广播,otto都行。

主要是记录怎么区分分享,授权与支付的。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值