开发微信支付流程:
做微信支付功能之前,需要先把app 做出比较完善的应用,并已经上到市场可以下载;
然后去微信开放平台 https://open.weixin.qq.com/ 注册一个开发者账号;
有了开发账号,开始新建一个app应用,把企业资料填写完善后,等待官方审核,审核通过后,再申请支付功能 的开发权限。两者都完善之后,获取到以下参数:
appid :%应用APPID%
mchid:'%商户号(PartnerID)%;
key: '%API密钥%' 这个是在 商户平台 的api权限 里面进行设置;
appsecret:%应用密钥%,在微信支付里 不需要用到,但是也记下来。
这些参数获取 是进行微信支付的首要条件,在获得之后,就可以进行支付功能开发了。
接下来是重新打包一个app,用dcloud工具打包的时候要记得勾选 支付插件,微信支付 ,输入 appid
进行微信支付的调试需要真机运行环境,所以在手机里安装 app 后进行开发调试;
到mui 官方示例里 下载 微信支付 的样例代码https://github.com/dcloudio/H5P.Server/tree/master/payment/wxpayv3
安装官方的代码方式,生成 订单数据,格式如下(示例数据)http://demo.dcloud.net.cn/payment/wxpayv3.HBuilder/?total=1
%订单数据%=
{"appid":"wx0411fa6a39d61297","noncestr":"tsaZiLxXn9ZSb3ES","package":"Sign=WXPay","partnerid":"1230636401","prepayid":"wx20160509160338d2d94257ff0510890260","timestamp":1462781018,"sign":"4F225D711AAD2EA8691BD71FC6310D9A"}
在页面里面 调用 mui 5+ 接口进行支付
mui.init();
var pay_channel = null;
mui.plusReady(function() {
plus.payment.getChannels(function(channels){
var str = '';
mui.each(channels, function(index, channel){
if(channel.id =='wxpay'){
pay_channel = channel;
var varpay = %订单数据%;
plus.payment.request(pay_channel, varpay, function(result){
plus.nativeUI.alert("支付成功!",function(){
mui.back();
});
},function(error){
plus.nativeUI.alert("支付失败:" + error.code);
mui.back();
});
}
})
},function(e){
plus.nativeUI.alert("获取支付通道失败:"+e.message);
});
});
经过这些步骤开发后,可以调用起微信进行付款了。
常遇到问题:
notify_url 参数,不需要用urlencode 进行编码;
支付金额,total 需要 *100;
kika
已解,是后端返回的签名订单有误
2017-12-01 14:52