注:V3.3以前的版本请参考“微信支付入门教程”和“微信、支付宝支付开发教程

WeX5 3.4版本平台提供了一组通用api, 利用这组api可轻松实现app内支付。下面我们以android为例,开发一个可以微信支付的app。如果想在微信公众号里支付,点击查看这篇文章:wex5微信公众号支付开发

目录

环境准备
1 微信app
2 签名生成工具
3 wex5

开发步骤
1 UI开发
2 APP发布
3 选择资源和包名
4 设置插件
5 完成打包
6 查看签名
7 回填微信app管理后台
8 体验

常见问题

环境准备

1 微信app

你需要在https://open.weixin.qq.com申请一个app应用。取得如下的参数: appid (微信appid),partner_id (微信商户id),api_key(微信api_key,在微信商户平台设置,登录微信商户号后,找到账户设置 -> 密码安全 -> API安全 -> API密钥)。这三个参数在您打包时会需要打入。

app

appKey

2 签名生成工具

从https://res.wx.qq.com/open/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android2.apk 安装一个签名生成工具,用于查看您app的签名。

3 wex5

wex5开发平台下载解压。

开发步骤


1 UI开发

启动WeX5开发工具。若使用的是3.4或3.4之后的版本, 把/UI2/system/api/native/demo 下的 test.w test.css test.js 拷贝到 /ui2/pay下。修改test.js 343行notifyUrl,改成你自己的支付成功通知地址,如果使用wex5提供的示例,此处可不修改。修改其它参数:body :支付显示名称;mchId :微信公众号的商户号,app内支付不需填写;outTradeNo :订单号;totalFee :总金额(单位分)。至此,所有的资源修改好了。

copyUI

或者您可以自己建一个pay/test.w页(适合所有版本)。在对应的test.js引入插件:require(“cordova!com.justep.cordova.plugin.weixin.v3”);

用户在点击 “立即购买” 或“微信支付”按钮时,执行下面的语句:

var tradeNo = justep.UUID.createUUID();   //通常是交易流水号
var notifyUrl = location.origin + "/baas/weixin/weixin/notify";//支付成功通知地址

var successCallback = function(message) {  //成功回调
alert(JSON.stringify(message));
};
var failCallback = function(message) { //失败回调
alert(JSON.stringify(message));
};
var cancelCallback = function(message) { //用户取消支付回调
alert(JSON.stringify(message));
};
var weixin = navigator.weixin;
weixin.generatePrepayId({ // 生成预支付id
"body" : "X5外卖",
"notifyUrl" : notifyUrl,
"totalFee" : "1",
"tradeNo" : tradeNo
}, function(prepayId) {
weixin.sendPayReq(prepayId, function(message) { // 支付
successCallback(message);
}, function(message) {
cancelCallback(message);
});
}, function(message) {
failCallback(message);
});
}


2 APP发布

2   在native右键新建 ->创建本地app. 进入打包的引导流程。

3 选择资源和包名

选择刚刚拷出来的pay进行发布,

chooseUi

包名需要自行填写,先记下来,后面需要和签名信息一起填到https://open.weixin.qq.com的app信息里。

com.justep.x5.tackout

4 设置插件

选择插件时,选中com.justep.cordova.plugin.weixin.v3插件、填入参数。appid,  partner_id, api_key。

v3

5 完成打包

5   打包,安装,启动服务端。若使用模式三打包,或需要成功通知,都应启动tomcat服务器。3.4之前的版本,打包需要勾选发布模式,以确保使用打包目录下的android.keystore进行签名。而3.4版本发布模式、调试模式均使用打包目录下的android.keystore对apk进行签名。

publish

6 查看签名

用安装签名生成工具 查看应用签名。输入包名,点击生成。若正确安装,会有一长串生字符成出来。拷贝。注意,为了包名与签名每次打包都保持一致,请妥善保存android.keystore,应确保发布的app都使用该keystore打包。否则会造成签名不一致,用户更新app失败的问题。

key

7 回填微信app管理后台

7  把包名、签名填写进https://open.weixin.qq.com你的app详情里。

QQApp


8 体验

现在可以打开应用体验微信支付功能了。

test.wpay

若您不想自己申请微信app, 只想体验一下h5 app支付,这时起步提供了外卖示例。

具体步骤:1  包名写成 com.justep.x5.takeout,  2 把 native/综合演示下的android.keystore 拷贝到您的目录下的android.keystore,   3  打包微信v3插件参数为:”weixin_appid”:”wx832f85feb2e76b14″ 、 “weixin_partner_id”:”1230177801″、”weixin_api_key”:”be9aded460e78703b889f18e2915ea6b”

v3


常见问题

1 找不到android.keystore 。 在打包的时候没有勾选生成 android.keystore选项,会报如下错误。此时应勾选上或拷贝一个android.keystore到您打包的本地目录。

android应用环境准备:
****ERROR****: 子任务 “copy” 执行失败。
****ERROR****: 任务 “prepareAndroidBuild” 执行失败。
****ERROR****: 执行出错:
****ERROR****: 错误信息: Warning: Could not find file D:\Mytool\WeX5_4923\model\Native\支付\build\src\android.keystore to copy.

2 net::ERR_CONNECTION_REFUSED错。若用模式三打包,需要启动tomcat,以便uiserver能响应.w请求。否则报错。

3  调不起来微信的原生支付界面。出现这种错误排除步骤:1 用Gen_Signature_Android2.apk 查看签名,与微信控制台比对包名,签名信息是否都一致。 2 查看打包目录下 app.project 文件中(本文件在studio打包配置完参数后自动生成) “weixin_api_key”,”weixin_appid”,”weixin_partner_id”参数是否正确。3 检查此app 是否申请了支付能力,并审核通过了。