拿到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. 开发者说:基于 Nacos 的网关灰度路由和服务权重灰度
  2. java lambda 变量_为什么Java中lambda表达式不能改变外部变量的值,也不能定义自己的同名的本地变量呢?...
  3. 第五周-第11章节-Python3.5-内置模块详解之Xml模块
  4. 蓝桥杯 n进制小数
  5. [傅里叶变换及其应用学习笔记] 二十四. 级联,脉冲响应
  6. spark sql hbase java_Spark 读写 HBase 的两种方式(RDD、DataFrame)
  7. oracle里子连接查询,pc端页面滚动到底部加载更多数据......
  8. Vue.js05:vue内联样式
  9. leetcode [209]长度最小的子数组/Minimum Size Subarray Sum 【暴力解法】【滑动窗口解法】
  10. PHP判断请求来自哪个操作系统
  11. 使用nginx负载均衡的webservice wsdl访问不到_Nginx 反向代理、负载均衡图文教程,写得太好了!...
  12. 解读升压电路(BOOST)与降压电路(BUCK)
  13. Java入门基础 安装并配置Java软件和JDK
  14. Centos7使用docke搭建openV
  15. PPT 各行各业素材 10000套 讲解
  16. 维基百科的语料库下载以及信息提取笔记
  17. gromacs ngmx_gromacs示例
  18. Kata Containers及相关vmm介绍
  19. html中文字不自动换行 white-space style
  20. 【有趣的Python小程序】Pygame制作键盘彩色闪烁打字游戏KeyBoardFlash

热门文章

  1. html5悬浮圆圈背景动画特效,html5圆圈浮动背景动画特效
  2. 随机事件与概率术语与主题
  3. 模仿风宇博客登录蒙层弹窗(vuex+computed实现)
  4. JQuery制作飘落的树叶动画效果
  5. RooT最好软件,root手机最好的软件
  6. 吴恩达提出了著名的二八定律
  7. matlab 图片倒影_ai怎么做水倒影效果?ai制作图案倒影水汶效果教程
  8. 基于node.js和Vue的运动装备网上商城
  9. [产品规划]行业公司如何做产品
  10. golang-math实用小技巧