zoukankan      html  css  js  c++  java
  • Android 微信支付,授权,分享回调区分记录

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

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

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

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

    [java] view plain copy
     
    1. private IWXAPI api;  
    [java] view plain copy
     
    1. @Override  
    2.     protected void onCreate(Bundle savedInstanceState) {  
    3.         super.onCreate(savedInstanceState);  
    4.         api = WXAPIFactory.createWXAPI(this, AppContant.APP_ID);  
    5.         api.handleIntent(getIntent(), this);  
    6.     }  
    7.   
    8.     @Override  
    9.     protected void onNewIntent(Intent intent) {  
    10.         super.onNewIntent(intent);  
    11.         setIntent(intent);  
    12.         api.handleIntent(intent, this);  
    13.     }  

    然后就是实现接口中的onResp方法中来接收回调的消息。

    下面看下代码:

    [java] view plain copy
     
    1. @Override  
    2.     public void onResp(BaseResp resp) {  
    3.         if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {  
    4.             // 支付  
    5.   
    6.             int errCode = resp.errCode;  
    7.             if (errCode == -1) {  
    8.                 Toast.makeText(getApplicationContext(), resp.errStr, Toast.LENGTH_SHORT).show();  
    9.                 finish();  
    10. //                EventBus.getDefault().post("wx1");  
    11.             } else if (errCode == 0) {  
    12. //                EventBus.getDefault().post("wx0");  
    13.                 Toast.makeText(getApplicationContext(), "支付完成", Toast.LENGTH_SHORT).show();  
    14.                 this.finish();  
    15.             } else {  
    16.                 Toast.makeText(getApplicationContext(), "支付失败", Toast.LENGTH_SHORT).show();  
    17.                 finish();  
    18.             }  
    19.         }else if (resp.getType()==ConstantsAPI.COMMAND_SENDMESSAGE_TO_WX){  
    20.             // 分享  
    21.   
    22.             int result = 0;  
    23.             switch (resp.errCode) {  
    24.                 case BaseResp.ErrCode.ERR_OK:  
    25.                     result = 分享成功;  
    26.                     break;  
    27.                 case BaseResp.ErrCode.ERR_USER_CANCEL:  
    28.                     result = 取消分享;  
    29.                     break;  
    30.                 case BaseResp.ErrCode.ERR_SENT_FAILED:  
    31.                     result = 分享失败;  
    32.                     break;  
    33.                 default:  
    34.                     result = 未知原因;  
    35.                     break;  
    36.             }  
    37.             Toast.makeText(getApplicationContext(), getString(result), Toast.LENGTH_SHORT).show();  
    38.             finish();  
    39.   
    40.         }else if(resp.getType()==ConstantsAPI.COMMAND_SENDAUTH){  
    41.             // 登录  
    42.   
    43.             int result = 0;  
    44.             switch (resp.errCode) {  
    45.                 case BaseResp.ErrCode.ERR_OK:  
    46.                     // 授权成功  
    47.   
    48.                     result = R.string.wechat_login_success;  
    49.   
    50.                     // 发送事件通知登陆界面  
    51.                     EventBus.getDefault().post(resp);  
    52.                     break;  
    53.                 case BaseResp.ErrCode.ERR_USER_CANCEL:  
    54.                     // 授权取消  
    55.                     result = 取消授权;  
    56.                     break;  
    57.                 case BaseResp.ErrCode.ERR_AUTH_DENIED:  
    58.                     // 授权被拒绝  
    59.                     result = 授权被拒绝;  
    60.                     break;  
    61.                 default:  
    62.                     // 未知错误  
    63.                     result = 未知原因;  
    64.                     break;  
    65.             }  
    66.             Toast.makeText(getApplicationContext(), getString(result), Toast.LENGTH_SHORT).show();  
    67.             finish();  
    68.         }  
    69.     }  
  • 相关阅读:
    函数声明 函数表达式 通俗解释
    javascript 作用域 通俗解释
    webpack 实用配置总结
    webapck html-loader实现资源复用
    webpack css打包为一个css
    网站banner图片制作(简易版)
    webpack 通用模块(每个页面都用到的js)编译
    webpack CommonsChunkPlugin 提取公共代码
    SQL Server索引
    如何判断http服务器是否支持range寻址
  • 原文地址:https://www.cnblogs.com/fuyaozhishang/p/8921843.html
Copyright © 2011-2022 走看看