微信小程序 md5-微信电脑版微信小程序
本教程用于帮助开发者在快应用中使用微信支付。
微信上有很多支付产品,其中快应用目前支持APP支付和H5支付。
如果开发者之前只使用过【小程序支付】,那么需要在微信开发平台新建一个【手机应用】或者【网站应用】,开通新应用的微信支付能力,并开发相应的后台界面。 利用。
注意:微信小程序快捷转账app工具不支持调用小程序进行支付。
一、快应用接入微信APP支付 1.1 快应用接入微信APP支付前期准备
如果开发者熟悉快应用签名文件、公私钥对、base64、MD5等概念,可以直接跳过本节。
在后续的接入过程中会用到以下信息:
1.1.1 快应用签名文件
快应用项目的sign/release目录下的这两个文件是用于对快应用正式版进行签名的签名文件。
如果该目录下没有文件,可以使用快应用开发工具新建签名:
1.1.2 快应用签名文件中公钥的base64格式字符串
sign/release目录下的certificate.pem是签名文件的公钥。 以文本方式打开文件,其中-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----的内容为公钥的base64格式字符串。
1.1.3 快应用签名文件中公钥的md5
注意这里的md5并不是直接对certificate.pem文件做md5。
如何生成公钥md5:
1.2 申请微信APP支付
请按照微信APP支付文件指引,在微信公众平台或开放平台提交微信支付申请。
创建成功应用开通微信支付能力
微信后台开启微信支付功能后,请按照微信APP支付文档开发相应的后台接口。
1.3 快应用配置文件
快应用接入APP支付需要配置参数:
// 小程序转快应用工具在 app.json文件中配置
{
"wxpay": {
"package": "com.your.package",
"sign": "xxxxxxxxx"
}
}
1个
2个
3个
4个
5个
6个
7
8个
配置参数说明
1.4 接口调用
参考微信APP支付文档
以及两个接口文档:
var payType = qa.getWxPaymentType()
if (payType === 'APP') {
qa.requestWxPayment({
//微信 app支付的prepayId
prepayid: 'your order prepayid,eg: wx20170101abcdef1234567890',
extra: {
app_id: 'your app_id',
partner_id: 'your partner_id',
package_value: 'your package_value',
nonce_str: 'your nonce_str',
time_stamp: 'your time_stamp',
order_sign: 'your order sign'
},
fail: function(ret) {
console.log(`WX PAY failed, code = ${ret.errCode}`)
},
cancel: function() {
console.log('WX PAY cancelled by user')
},
success: function() {
console.log('WX PAY success')
}
})
}
1个
2个
3个
4个
5个
6个
7
8个
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
二十四
25
2、快应用接入微信H5支付
快应用接入微信H5支付有两种方式。 目前只推荐referer方式,中间页方式不再介绍。 如果有开发者已经通过中间页连接,建议改用referer方式。
2.1 快应用接入微信H5支付前期准备
你只需要准备【用户下单的网页域名】,即用户最终发起支付的网页域名
2.2 申请微信H5支付
请按照微信H5支付文档指引,在微信公众平台或开放平台提交微信支付申请。
创建成功应用开通微信支付能力
微信后台开启微信支付功能后微信小程序 md5,请按照微信H5支付文档开发相应的后台接口。
2.3 调用开发接口
快应用接入微信H5支付不需要配置app.json参数。
调用接口时,referer填写微信后台(商户平台--“产品中心”--“开发配置”)设置的【网站域名】。
参考微信H5支付文档
以及两个接口文档:
var payType = qa.getWxPaymentType()
if (payType === 'MWEB') {
qa.requestWxPayment({
// 微信网页支付的prepayId
prepayid: 'your order prepayid,eg: wx20170101abcdef1234567890',
referer: 'your host name configured in wechat, eg: https://www.quickapp.cn',
extra: {
// 需要将微信返回的MWEB_URL地址配置到这里
mweb_url: 'https://wx.tenpay.com/cgi-bin/mmpayweb-bin'
},
fail: function(ret) {
console.log(`WX H5 PAY handling fail, code = ${ret.errCode}`)
},
cancel: function() {
console.log('WX H5 PAY handling cancel')
},
success: function(data) {
//H5方式下,支付成功的回调仅仅只是指将订单递交给微信,并不意味着支付已经成功完成
console.log('WX H5 PAY handling success')
}
})
}
1个
2个
3个
4个
5个
6个
7
8个
9
10
11
12
13
14
15
16
17
18
19
20
21
22
3. 常见问题 问题一:我应该选择微信APP支付还是微信H5支付?
微信APP支付更安全,也是推荐在安卓手机上使用微信的方式。
但是并不是所有支持快应用的设备都可以支持APP支付,所以对于这类设备我们也可以使用微信H5支付。
为了覆盖更多用户,建议同时支持微信APP支付和微信H5支付。
问题二:快应用支持微信小程序支付吗?
不受支持。
已经开通微信小程序支付的开发者需要申请微信APP支付或者微信H5支付,才能在快应用上使用微信支付能力。
附言。 微信小程序开发者使用转换工具将小程序转换为快应用时,需要额外接入微信APP支付/微信H5支付。
问题三:开发者可以指定使用微信APP支付还是微信H5支付?
开发者无法指定使用哪种微信支付方式,因为并非所有设备都支持微信APP支付。
系统运行时会判断当前应该使用哪种微信支付方式。
开发者需要通过获取支付类型接口来判断使用哪种微信支付产品,从而调用不同的支付代码(APP支付或H5支付):
问答。 getWxPaymentType()
问题四:快应用运行时如何选择微信APP支付或微信H5支付?
微信APP支付需要设备框架支持微信小程序 md5,支持快应用的设备有两种:
快应用根据app.json是否配置微信APP支付参数分为两种:
实际上
如果设备支持微信APP支付,且快应用接入微信APP支付,系统会优先为APP支付。
下面是系统接口返回的微信支付类型(APP指微信APP支付,MWEB指微信H5支付)在不同设备环境下的对应关系:
快捷应用接入方式同时支持微信APP支付和微信H5支付。 设备仅支持微信H5支付。
在 app.json 中配置 package 和 sign 参数
应用程序
package 和 sign 参数没有配置
移动互联网
移动互联网
其他常见问题
大部分问题都可以在微信官方文档中找到。 详情请参考:
微信H5支付开发步骤&常见问题
微信APP支付接口安全规范
另外,论坛上有一些总结供参考:
微信支付接入问答集中发帖