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

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

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

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

  1. private IWXAPI api;
  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. @Override
  8. protected void onNewIntent(Intent intent) {
  9. super.onNewIntent(intent);
  10. setIntent(intent);
  11. api.handleIntent(intent, this);
  12. }

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

下面看下代码:

  1. @Override
  2. public void onResp(BaseResp resp) {
  3. if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
  4. // 支付
  5. int errCode = resp.errCode;
  6. if (errCode == -1) {
  7. Toast.makeText(getApplicationContext(), resp.errStr, Toast.LENGTH_SHORT).show();
  8. finish();
  9. //                EventBus.getDefault().post("wx1");
  10. } else if (errCode == 0) {
  11. //                EventBus.getDefault().post("wx0");
  12. Toast.makeText(getApplicationContext(), "支付完成", Toast.LENGTH_SHORT).show();
  13. this.finish();
  14. } else {
  15. Toast.makeText(getApplicationContext(), "支付失败", Toast.LENGTH_SHORT).show();
  16. finish();
  17. }
  18. }else if (resp.getType()==ConstantsAPI.COMMAND_SENDMESSAGE_TO_WX){
  19. // 分享
  20. int result = 0;
  21. switch (resp.errCode) {
  22. case BaseResp.ErrCode.ERR_OK:
  23. result = 分享成功;
  24. break;
  25. case BaseResp.ErrCode.ERR_USER_CANCEL:
  26. result = 取消分享;
  27. break;
  28. case BaseResp.ErrCode.ERR_SENT_FAILED:
  29. result = 分享失败;
  30. break;
  31. default:
  32. result = 未知原因;
  33. break;
  34. }
  35. Toast.makeText(getApplicationContext(), getString(result), Toast.LENGTH_SHORT).show();
  36. finish();
  37. }else if(resp.getType()==ConstantsAPI.COMMAND_SENDAUTH){
  38. // 登录
  39. int result = 0;
  40. switch (resp.errCode) {
  41. case BaseResp.ErrCode.ERR_OK:
  42. // 授权成功
  43. result = R.string.wechat_login_success;
  44. // 发送事件通知登陆界面
  45. EventBus.getDefault().post(resp);
  46. break;
  47. case BaseResp.ErrCode.ERR_USER_CANCEL:
  48. // 授权取消
  49. result = 取消授权;
  50. break;
  51. case BaseResp.ErrCode.ERR_AUTH_DENIED:
  52. // 授权被拒绝
  53. result = 授权被拒绝;
  54. break;
  55. default:
  56. // 未知错误
  57. result = 未知原因;
  58. break;
  59. }
  60. Toast.makeText(getApplicationContext(), getString(result), Toast.LENGTH_SHORT).show();
  61. finish();
  62. }
  63. }

Android 微信支付,授权,分享回调区分记录的更多相关文章

  1. Android微信登录、分享、支付

    转载需要著名出处: http://blog.csdn.net/lowprofile_coding/article/details/78004224 之前写过微信登录分享支付第一版: http://bl ...

  2. 转-Android微信支付

    http://blog.fangjie.info/android微信支付/ Android微信支付 2014-08-09 一.使用微信官方的提供的demo里的appid等 1.微信接口上手指南:(从“ ...

  3. 【微信支付】分享一个失败的案例 跨域405(Method Not Allowed)问题 关于IM的一些思考与实践 基于WebSocketSharp 的IM 简单实现 【css3】旋转倒计时 【Html5】-- 塔台管制 H5情景意识 --飞机 谈谈转行

    [微信支付]分享一个失败的案例 2018-06-04 08:24 by stoneniqiu, 2744 阅读, 29 评论, 收藏, 编辑 这个项目是去年做的,开始客户还在推广,几个月后发现服务器已 ...

  4. 解决Android微信支付官方demo运行失败

    Android微信支付官方demo运行失败,在此简单记录一下解决步骤 1.httpclient错误 官方给的demo是eclipse的,打开之后提示httpclient的错误,我知道在as下解决htt ...

  5. 微信h5支付“网站域名ICP备案主体与商户号主体不一致”的解决方法,H5微信支付 授权函下载

    如下图所示: 微信h5支付“网站域名ICP备案主体与商户号主体不一致”: 需提交H5微信支付 授权函 下载地址:https://download.csdn.net/download/a72400815 ...

  6. 详解Android微信登录与分享

    Android 使用微信登录.分享功能 具体的文档详情微信官网上介绍(微信官网文档),本人直接按照项目部署步骤进行讲解: 第一步:申请你的AppID: 第二步:依赖 dependencies { co ...

  7. Android 微信支付&支付宝支付

    由于项目需求,加入这2个功能记录一些需要注意的地方 一.微信支付 微信支付在2016年4月份左右稍微调整了一下支付过程,但是文档却没怎么更新,这也是百度上为什么那么多开发者都说微信是个大坑. 身为一个 ...

  8. Android微信支付V3版

    由于公司需求做微信APP支付,在集成过程中也遇到各种问题,比如说签名错误,body编码必须为UTF-8.APP端无法调用支付页面直接到支付结果页面.结果为null,code=-1等等: 1.签名错误问 ...

  9. 微信支付成功没有回调遇到的坑 onBridgeReady getBrandWCPayRequest wx.chooseWXPay

    最近在调微信支付,遇到一个问题,就是支付成功回调不执行的. 遇到的问题就是   苹果手机 支付成功没有进到回调函数里,但是支付的时候,点击取消支付是可以进到回调函数里的.    安卓手机测试一切正常! ...

随机推荐

  1. POJ2912 Rochambeau [扩展域并查集]

    题目传送门 Rochambeau Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 4463   Accepted: 1545 ...

  2. Java集合之ArrayList与LinkList

    注:示例基于JDK1.8版本 参考资料:Java知音公众号 本文超长,也是搬运的干货,希望小伙伴耐心看完. Collection集合体系 List.Set.Map是集合体系的三个接口. 其中List和 ...

  3. UTF-8字符「EF BF BD」-备胎

    在众多的utf-8码点值中,除了ascii,你还应该记住「EF BF BD」,因为它是很多编程语言以及库中的备胎,即无效的码点值在编码的时候会默认用这个码点值进行替换,即utf-8中的超级「备胎」(R ...

  4. Xamarin Android SDK无法更新的解决办法

    Xamarin Android SDK无法更新的解决办法   Xamarin Android SDK无法更新的解决办法,更新时候,提示警告信息:A folder failed to be moved. ...

  5. angularjs学习笔记1-angular总体简介及其特点

    以前开发(web或者移动端)前端主要使用jQuery+原生js,如果使用某些前端UI框架的话,它自己还可能提供一些API可以使用.而且目前很多UI框架都是基于jQuery的,所以说一下由jQuery跨 ...

  6. 机房重构包图(从三层+实体到三层+实体+外观+工厂+接口+SQLHelper)

    刚刚开始接触三层的时候,我只做了两个登录小窗体的例子.画了简单的包图,可以说,为后面机房重构留下了大量的工作(因为三层理解没有深度,也没有理解出自己的东西).不过,欠下的总要还的.在做机房重构的时候, ...

  7. [转]Web.xml配置详解之context-param

    转自:http://blog.csdn.net/liaoxiaohua1981/article/details/6759206 格式定义: [html] view plaincopy   <co ...

  8. Codeforces Beta Round #3 A. Shortest path of the king 水题

    A. Shortest path of the king 题目连接: http://www.codeforces.com/contest/3/problem/A Description The kin ...

  9. GG同步到sqlserver报错一例 Invalid date format

    在将Oracle表同步到sqlserver时,在sqlserver端应用数据时,可能会遇到这个报错. 2014-05-17 17:20:24 WARNING OGG-01154 SQL error - ...

  10. Atlassian发布JIRA项目组合管理解决方案

    在其年度用户峰会上,开发和协作软件供应商Atlassian发布了JIRA Portfolio,JIRA Portfolio是JIRA的一个附加组件"可以提供简单准确的视图用于计划和管理跨团队 ...