简体中文
申请开通
微信支付功能,根据页面提示填写资料,提交审核商户号
(PartnerID,支付订单中需要使用)和登录密码
商户号
和登录密码
登录微信商户平台,进入 “账户中心” > “API安全” > “设置APIv2密钥” 设置API密钥(用于服务器生成订单),详情参考API证书及密钥更多信息详见微信官方文档 APP支付接入申请流程指引,服务器接入相关信息详见 APP支付接入前准备
在manifest.json文件“App模块配置”项的“Payment(支付)”下,勾选“微信支付”项
注意
在 App 端调用支付前,需在业务服务器生成支付订单,可参考:
更多信息详见微信支付官方文档 APP支付统一下单
wxpay
、orderInfo属性值为订单对象Object对象类型
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
appid | String | 是 | 应用ID(AppID),请登录微信开放平台查看,注意与公众号的APPID不同 |
partnerid | String | 是 | 微信支付分配的商户号(PartnerID) |
prepayid | String | 是 | 预支付交易会话ID |
package | String | 是 | 扩展字段,固定值"Sign=WXPay" |
noncestr | String | 是 | 随机字符串,不长于32位 |
timestamp | String | 是 | 时间戳,标准北京时间,时区为东八区,自1970年1月1日 0点0分0秒以来的秒数 |
sign | String | 是 | 签名,详见签名生成算法 |
更多信息详见微信支付官方文档 APP支付调起支付接口
//订单对象,从服务器获取
var orderInfo = {
"appid": "wx499********7c70e", // 应用ID(AppID)
"partnerid": "148*****52", // 商户号(PartnerID)
"prepayid": "wx202254********************fbe90000", // 预支付交易会话ID
"package": "Sign=WXPay", // 固定值
"noncestr": "c5sEwbaNPiXAF3iv", // 随机字符串
"timestamp": 1597935292, // 时间戳(单位:秒)
"sign": "A842B45937F6EFF60DEC7A2EAA52D5A0" // 签名,这里用的 MD5 签名
};
uni.getProvider({
service: 'payment',
success: function (res) {
console.log(res.provider)
if (~res.provider.indexOf('wxpay')) {
uni.requestPayment({
"provider": "wxpay", //固定值为"wxpay"
"orderInfo": orderInfo,
success: function (res) {
var rawdata = JSON.parse(res.rawdata);
console.log("支付成功");
},
fail: function (err) {
console.log('支付失败:' + JSON.stringify(err));
}
});
}
}
});
//订单对象,从服务器获取
var orderInfo = {
"appid": "wx499********7c70e", // 应用ID(AppID)
"partnerid": "148*****52", // 商户号(PartnerID)
"prepayid": "wx202254********************fbe90000", // 预支付交易会话ID
"package": "Sign=WXPay", // 固定值
"noncestr": "c5sEwbaNPiXAF3iv", // 随机字符串
"timestamp": 1597935292, // 时间戳(单位:秒)
"sign": "A842B45937F6EFF60DEC7A2EAA52D5A0" // 签名,这里用的 MD5 签名
};
//获取支付渠道
var wxpaySev = null;
plus.payment.getChannels(function(channels){
for (var i in channels) {
var channel = channels[i];
if (channel.id === 'wxpay') {
wxpaySev = channel;
}
}
//发起支付
plus.payment.request(wxpaySev, orderInfo, function(result) {
var rawdata = JSON.parse(result.rawdata);
console.log("支付成功");
}, function(e) {
console.log("支付失败:" + JSON.stringify(e));
});
}, function(e){
console.log("获取支付渠道失败:" + JSON.stringify(e));
});