四月技术伍成才
四月技术伍成才
  • 发布:2016-05-09 16:11
  • 更新:2017-11-02 16:19
  • 阅读:5755

打包app微信支付 开发流程

分类:HTML5+

开发微信支付流程:
做微信支付功能之前,需要先把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;

2016-05-09 16:11 负责人:无 分享
已邀请:
kika

kika

微信支付返回 {"code":-100,message:"[payment微信:-1]General errors"}

android系统
各种配置都检查确认过
用DCloud订单参数真机调试可以调出微信支付界面
用自己的Java服务生成的订单,无法调出微信界面
订单通过微信的接口校验过,也没问题。

卡了几天了,求解

  • kika

    已解,是后端返回的签名订单有误


    2017-12-01 14:52

1***@qq.com

1***@qq.com

微信支付返回 {"code":-100,message:"[payment微信:-1]General errors"}

该问题目前已经被锁定, 无法添加新回复