混合型APP集成微信支付,及填坑

公司开发的某app需要集成微信支付功能,在集成过程中也是遇到了很多坑,特此记录下这些填坑的过程(仅记录android版)

1. 环境:

混合app框架:cordova 8.0.0

cordova create 项目名 包名(需要和微信开放平台填写的一致) app名

微信支付cordova插件:cordova-plugin-wechat  2.1.0

cordova-plugin-wechat插件版本很多,我安装的是稍微老一点的版本,最新的三个版本deprecated了

cordova plugin add cordova-plugin-wechat@2.1.0 --variable wechatappid=替换成你的appid

2. 前期准备:

  • 第一步:微信开放平台注册账号,申请开发者认证(竟然还要收费300RMB),获得appid
  • 第二步:创建应用,需要注意的地方,android平台“应用包名”要和apk的包名一致,“应用签名”可通过微信提供的工具获取(需要keystore签名的apk),ios平台Bundle ID也要和应用程序Bundle identify值保持一致
  • 第三步:申请应用审核通过后,即可申请开通微信支付了,支付开通后会获得商户号,这里需要自己设置秘钥key(微信商户平台自行设置)
  • 至此,就可以开始你的微信支付集成了

3. 填坑之路

坑1:manifest.xml文件提示找不到.wxapi.WXEntryActivity和.wxapi.WXPayEntryActivity

         cordova8.0.0打包后的android平台目录结构发生了改变,导致添加wechat插件后,wxapi这个目录不在platforms/android/app目录下,而是在platforms/android/src目录下,直接将wxapi整个拷贝到app的java目录应用包名下

坑2:一定要用正式签名的release版本apk,debug版本apk调不起微信支付,我这里是采用的android studio自带的签名工具生成keystore文件并签名apk的

坑3:签名不对导致调不起微信支付,项目中统一下单是在后台服务器进行的,签名也是在后台进行的,这里进行签名的时候,一定要根据微信的“调起支付接口”的请求参数(6个参数变量名也要和接口文档一致),签名方式要与统一下单一样。签名不正确是调不起微信支付的,会一直返回-1。

坑4:android能成功调起微信支付,但ios一直提示“支付验证签名失败”,再确定相关参数配置无误之后,发现api文档提示,时间戳的位数是10位,ios系统只支持10位数的时间转换,因此后台需要转换成10位数的时间戳,这也是没有注意文档细节导致的问题。

校验签名是否正确可采用微信提供的工具校验https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=20_1

4.总结

虽然集成微信支付成功后咋一看是很简单,感觉一个小时就搞定了,但作为一个小白,微信支付集成也是调试了好几天填了不少坑才完成,最开始没注意到微信开放平台应用包名要和cordova创建的包名一致,也没主要到要用正式签名的apk获取应用签名,这个坑也花了点时间填;其次一定要用release版本的apk;最后签名一定要和官网提供的工具生成的签名一致,时间戳采用10位。

统一下单后获取prepayid参数,调起支付接口时传递的如下参数

使用cordova-plugin-wechat插件调起支付接口

记录下,附一个demo截图:

 

 

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1 简介 1、Native APP(原生) 2、Hybrid APP(混合) 3、React Native Hybrid App按网页语言与程序语言的混合,通常分为三种类型:多View混合型,单View混合型,Web主体型。 2 技术 2.1 技术选型 Ionic 2.1.1 Ionic介绍 Ionic是一款基于Angular、Cordova的强大的HTML5移动应用开发框架,可以快速创建一个跨平台的移动医用。可以快速开发移动APP、移动WEB页面、微信公众平台应用,混合APP WEB页面。 2.1.2 Ionic和cordova、Angular关系 Ionic = cordova + Angular + ionic Css Ionic 是完全基于谷歌的 Angular 框架,在 Angular 基础上面做了一些封装,让我们可以更快速和容易的开发移动的项目。Ionic 调用原生的功能是基于 Cordova,Cordova 提供了使用JavaScript 调用 Native 功能,ionic 自己也封装了一套漂亮的 CSS UI 库。 2.1.3 开发工具 Visual Studio Code 2.1.4 管理工具 Git 2.2 环境搭建 2.2.1 概述 2.2.2 JDK 2.2.2.1 版本 jdk1.8 2.2.2.2 配置 JAVA_HOME PATH CLASSPATH 2.2.3 Apache ant 2.2.3.1 版本 1.9.12 2.2.3.2 解压 2.2.3.3 配置 ANT_HOME: D:\android\apache-ant-1.10.4 Path: %ANT_HOME%\bin 2.2.3.4 查看安装版本 ant –v 2.2.4 android SDK 2.2.4.1 版本 r24.4.1 2.2.4.2 配置 ANDROID_SDK_HOME: D:\Android\android-sdk-windows Path:%ANDROID_SDK_HOME%\platform-tools;%ANDROID_SDK_HOME%\tools 2.2.4.3 SDK 通过SDK Manager下载相关的版本 2.2.4.4 查看信息 android -h 2.2.5 node.js 2.2.5.1 版本 8.11.3 2.2.5.2 安装 2.2.5.3 查看版本 node –v npm -v 2.2.6 npm/cnpm 2.2.6.1 安装npm nodejs已经集成了npm 2.2.6.2 安装 cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org 2.2.7 cordova 2.2.7.1 版本 8.0.0 2.2.7.2 安装 npm install -g cordova 可以使用cnpm代替npm cnpm install -g cordova ionic 2.2.7.3 查看版本 cordova -v 2.2.8 ionic 2.2.8.1 版本 3.20.0 2.2.8.2 安装 npm install –g ionic 可以使用cnpm代替npm cnpm install -g cordova ionic 2.2.8.3 查看版本 ionic –v 2.2.8.4 查看信息 ionic info 3 项目 3.1 创建 3.1.1 新建 3.1.2 启动 3.1.3 打包 3.1.3.1 添加 3.1.3.2 生产release版apk(签名后安装) 3.1.3.3 生成debug版apk 3.1.4 签名 3.1.4.1 生成签名文件 keytool -genkey -v -keystore testapp.keystore -alias testapp.keystore -keyalg RSA -validity 20000 3.1.4.2 apk签名 jarsigner -verbose -keystore testapp.keystore -signedjar app-release-signed.apk app-release-unsigned.apk testapp.keystore 3.1.5 安装 安卓手机安装使用
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值