拿到APPID后,现在Application里去注册:

 private static IWXAPI api_;public static final String WX_APP_ID = "拿到的APPID";@Overridepublic void onCreate() {super.onCreate();...api_ = WXAPIFactory.createWXAPI(this, WX_APP_ID);api_.registerApp(WX_APP_ID);}public static IWXAPI getIWXAPI() {return api_;}

接下来是创建WXPayEntryActivity:

这部分基本和文档差不多。

import android.annotation.SuppressLint;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;
import com.tencent.mm.opensdk.constants.ConstantsAPI;
import com.tencent.mm.opensdk.modelbase.BaseReq;
import com.tencent.mm.opensdk.modelbase.BaseResp;
import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
import com.zlxn.dl.yunvjia.R;
import com.zlxn.dl.yunvjia.activity.HomeActivity;
import com.zlxn.dl.yunvjia.app.BaseApplication;
import com.zlxn.dl.yunvjia.base.BaseActivity;public class WXPayEntryActivity extends BaseActivity implements IWXAPIEventHandler {private static final String TAG = "WXPayEntryActivity:";private IWXAPI api_ = BaseApplication.getIWXAPI();@Overrideprotected void initView() {setContentView(R.layout.activity_w_x_pay_entry);}@Overrideprotected void initData() {super.initData();api_.handleIntent(getIntent(), WXPayEntryActivity.this);}@Overrideprotected void onNewIntent(Intent intent) {super.onNewIntent(intent);setIntent(intent);api_.handleIntent(intent, WXPayEntryActivity.this);}@Overridepublic void onReq(BaseReq baseReq) {}@SuppressLint("LongLogTag")@Overridepublic void onResp(BaseResp resp) {Log.d(TAG, "onPayFinish, errCode = " + resp.errCode);if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {if (resp.errCode == 0) {Toast.makeText(WXPayEntryActivity.this, "支付成功", Toast.LENGTH_SHORT).show();Intent intent = new Intent(WXPayEntryActivity.this, HomeActivity.class);intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);intent.putExtra("flag", 3);startActivity(intent);finish();} else if (resp.errCode == -1) {Toast.makeText(WXPayEntryActivity.this, "支付失败", Toast.LENGTH_SHORT).show();finish();} else if (resp.errCode == -2) {Toast.makeText(WXPayEntryActivity.this, "您已取消支付", Toast.LENGTH_SHORT).show();finish();}}}
}

拿到后台返回数据后:

 PayReq req = new PayReq();Log.d("返回数据:", "onSuccess: " + wxBean.appid);req.appId = wxBean.appid;req.partnerId = wxBean.partnerid;req.prepayId = wxBean.prepayid;req.packageValue = wxBean.packageX;req.nonceStr = wxBean.noncestr;req.timeStamp = wxBean.timestamp + "";req.sign = wxBean.sign;//req.extData = "app data";api_.sendReq(req);

此时已基本完事

遇 到 的 一 些 问 题 \color{red}{遇到的一些问题} 遇到的一些问题

  • 如果后台返回的是对象的话,可能会有关键词,可以这样:
 @SerializedName("package")public String packageX;
  • 如果有Android 11 无反应,可参考文档:
 这边AndroidStudio 是4.0.1;classpath 'com.android.tools.build:gradle:3.6.4'清单文件放这个<manifest>...<queries><!-- com.blankj.utilcode SDK检测虚拟机--><intent><action android:name="android.intent.action.DIAL" /></intent><!-- 微信支付SDK--><package android:name="com.tencent.mm" /><!-- 支付宝支付SDK--><package android:name="com.eg.android.AlipayGphone" /></queries><application>...</application></manifest>
  • 签名需得和所打的正式包一致

    签名校验工具就是官方文档的那个:签名工具下载地址

  • 一个坑就来了(像极了电脑有问题?重启看看):

    这些做完还是无法调起,起先怀疑是测试机是Android 10的问题:
    先找同事用Android 6 的测试,第一次通了,但是未付款,在之后就不知道为啥不行了;
    再用一个Android 8的测试,没有问题。
    然后,继续勾搭Android 10的手机,微信开放社区的回答让人很啼笑皆非。

    直到在一个博客那里看到个清除微信缓存,说是有订单缓存。

    清了后没第一时间去测,是做了下别的功能,回头再测发现通了!!!

记一次集成微信支付的故事相关推荐

  1. Android集成微信支付之-天坑

    项目集成微信支付,折腾了三天左右,坑太多,做个简单记录 开通和主要原理不再讲了,参考微信支付官网 截个官网的业务流程图,下面好说明 1 支付结果回调(图中的17步) 支付结果回调,微信官方的说法是: ...

  2. SpringBoot集成微信支付V3

    河南循中网络科技有限公司 - 精心创作,详细分解,按照步骤,均可成功! 文章目录 吐槽! 此文章包含实现了哪些接口? 学习资料 集成微信支付V3 什么是"商户证书"?什么是&quo ...

  3. 微信小程序、app集成微信支付

    一.微信小程序支付 开发文档:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_11&index=2 申请小程序 ...

  4. android微信迁移数据,【CSDN博客迁移】Android集成微信支付之-天坑

    项目集成微信支付,折腾了三天左右,坑太多,做个简单记录 开通和主要原理不再讲了,参考微信支付官网 截个官网的业务流程图,下面好说明 微信支付业务流程.png 1 支付结果回调(图中的17步) 支付结果 ...

  5. Android集成微信支付

    Android集成微信支付 项目中集成第三方支付的功能,基本是我们app中经常用到的功能.今天先给大家讲一下微信支付的集成过程,重点只说一下代码部分.首先,你要到微信开发者平台注册账号,并创建你的应用 ...

  6. SpringCloud集成微信支付

    SpringCloud集成微信支付 参照文档地址 代码里面有注释替换自己的微信参数即可 里面的加密直接搜MD5,AES加解密就可以,随机生成字符串 然后配置文件配置一下回调地址还有微信支付参数就ok了 ...

  7. Android 集成微信支付和支付宝支付工具类

    Android 集成微信支付和支付宝支付工具类 1.前言 去年年底接了一个商城app 外包项目,里面尼涉及到 微信和支付宝支付,这里我整理出几个工具类,下面就和大家分享一下,废话不多说,下面我一步一步 ...

  8. Hbuilder集成微信支付教程(简单流程)

    整个系统运作的流程大致是这样: (1)APP向服务器发出需要付款的请求 (2)服务器请求微信服务端下单 (3)服务器将下单数据回复给APP (4)APP向微信服务端发起请求并输入密码进行支付 关键字用 ...

  9. android微信支付插件,React Native集成微信支付【Android】

    wechat.jpg 本次博客主要讲解主要在RN中集成微信支付以及被我踩平的坑,需要一定的原生集成经验! 一. 导入微信SDK 用Android Studio打开RN项目中的android部分,在ap ...

最新文章

  1. 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用
  2. python 利用 for ... else 跳出双层嵌套循环
  3. Arrays工具类(jre中基本类库提供的工具类)
  4. UVA 11383 - Golden Tiger Claw(二分图完美匹配扩展)
  5. 贝叶斯网的R实现( Bayesian networks in R)bnlearn(1)
  6. 按timestamp查询_04. 复杂查询
  7. MTK手机平台充电原理
  8. uplift model增益模型相关术语概念名词汇总
  9. 【Java实现链表操作】 万字肝爆 !链表的图文解析(包含链表OJ练习解析)
  10. 2020研究生数学建模E题--AlexNet深度网络解法(大雾能见度估计与预测)(含代码)
  11. 1+X Web前端开发初级考试 模拟试题(一)
  12. java与单片机通信_Java实现串口通信与单片机通信实例..【Pnoter】
  13. vmlinuz和initrd
  14. 题目错题记录表mysql设计_基于Web2.0的跨平台电子错题本功能的设计与实现
  15. java手机小程序 情人节_情人节快到了!表白小程序制作详解,撩翻你的女神!...
  16. CLRS 5.1雇佣问题
  17. 十六种适合网络创业的个人站长
  18. SQL脚本更新至pdm
  19. 平板打印机适合那些行业
  20. 配置nginx代理实现https访问

热门文章

  1. centos下查看服务器型号命令
  2. 使用Python异序词检测示例_清点法_排序法_蛮力法_计数法
  3. ActiveMQ的简单使用
  4. 【JAVA】项目开发团队分配管理软件
  5. 什么是大牛,我彻底服了,大牛讲解信号与系统
  6. 数据可视化 六种基本图标
  7. Element ui 中的tree 在数据前面添加自定义图标
  8. 手把手教你使用Python生成图灵智能小伙伴,实现工作助手/闲聊功能
  9. 【初赛】计算机操作系统
  10. ni max不能连续采集图像_图像识别技术在智慧教室录播系统中的应用研究