MUI调用微信支付wx.chooseWXPay

关于MUI请看上篇博文
此篇没有关于微信公众号调用API那些配置,只是梳理页面内支付逻辑

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    <title></title>
    <script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js" type="text/javascript" charset="utf-8"></script>
    <script src="js/mui.min.js"></script>
    <link href="css/mui.min.css" rel="stylesheet"/>
    <script type="text/javascript" charset="utf-8">
      	mui.init();
    </script>
</head>
<body>
	<div class="mui-card">
		<!--页眉,放置标题-->
		<div class="mui-card-header">这是一条商品信息</div>
		<!--内容区-->
		<div class="mui-card-content">
			<p>介绍1523</p>
			<p>介绍1523</p>
			<p>介绍1523</p>
			<p>介绍1523</p>
			<p>162.30</p>
		</div>
		<!--页脚,放置补充信息或支持的操作-->
		<div class="mui-card-footer">
			<button type="button" id="payMent">立即购买</button>
		</div>
	</div>
	
	
	
	
	
	<script>
		console.log(mui.ajax())
		console.log(wx.config)
		
		// 唤起微信js-sdk配置  获取签名
		mui.ajax('/xxx.xx.xx/xxxxx',{
			dataType:'json',         //服务器返回json格式数据
			type:'get',              //HTTP请求类型
			timeout:10000,           //超时时间设置为10秒;	              
			success:function(data){
				//服务器返回响应,根据响应结果,分析是否登录成功,成功则验签
				console.log(data)   // 信息注入wx.config
				wx.config({
				    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
				    appId: '', // 必填,公众号的唯一标识
				    timestamp: '', // 必填,生成签名的时间戳
				    nonceStr: '', // 必填,生成签名的随机串
				    signature: '',// 必填,签名,见附录1
				    jsApiList: ['chooseWXPay'] // 必填,需要使用的JS接口列表,所有JS接口列表 例如:previewImage图片预览,openLocation 定位等
				});
			},
			error:function(xhr,type,errorThrown) {  
				//异常处理
				console.log(type);
			}
		});
		// 支付按钮
		document.getElementById("payMent").addEventListener('tap', function() {
			getCode()
        });
        // 支付请求
        function getCode() {
            mui.ajax({
                url: '/xxx.xx.xx/xxxxx',   // 支付url
                data: {},
                async: true,
                dataType: 'json',
                crossDomain: true, 
                type: 'get',
                timeout: 10000,
                success: function(res) {  
                	// 支付请求成功唤起支付
                    onBridgeReady(res)
                }
            });
            
        }
        // 唤起支付
        function onBridgeReady(data) {    
            console.log(data)  // 信息调起支付
            wx.chooseWXPay({
	              appId: '',
	              timestamp: '', // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
	              nonceStr: '', // 支付签名随机串,不长于 32 
	              package: '', // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)// 统一下单接口返回
	              signType: '', // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
	              paySign: '', // 支付签名
	              success: function (res) {   // 支付成功
	                  console.log(res);
	                  alert(res.errMsg)
	              },
	              cancel: function (res) {  //提示引用可以mint-UI里toast
	                  console.log('退出')
	              },
	              fail: function (res) {
	                  console.log('失败')
	                  alert(res.errMsg)
	              }
	        })
        }
	</script>
</body>
</html>

微信支付需要在真机验证,要不然你写好打包上服务器测试,要不然搞一个内网穿透,在开发者工具上无法调试这个功能。
在这里插入图片描述

发布了38 篇原创文章 · 获赞 28 · 访问量 1019

猜你喜欢

转载自blog.csdn.net/huanhuan03/article/details/103730374