微信支付

<table class="text"><tr class="li1">
<td class="ln"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105

换取支付凭证 ==> 调用支付接口      5.支付成功/支付失败 并调用状态判断   show coding(代码片段):        判断是否是微信支付环境:  weixin: u.indexOf('MicroMessenger') > -1,//是否微信        第三方网页授权 : app.factory("authorFactory",['$rootScope',function($rootScope) {     return function(o){         var goUrl = location.origin + '/#/' + o.href;         location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc9d7318ebf3c25ec&redirect_uri='+ encodeURIComponent(goUrl) +'&response_type=code&scope=snsapi_base&state=123#wechat_redirect';     }; }]);           authorFactory({     href : 'listBoughtItems' })        调用微信支付以及返回信息处理: // 调用微信支付 function weChatPay(orderId){     function goToWeChatPay(data){         var wePayObj = data.model.wxH5PayObject;         function onBridgeReady(){             WeixinjsBridge.invoke(                 'getBrandWCPayRequest',{                     "appId" : wePayObj.appId,                    "timeStamp": wePayObj.timeStamp,                    "nonceStr" : wePayObj.nonceStr,                    "package" : wePayObj.packageValue,                    "signType" : wePayObj.signType,                    "paySign" : wePayObj.paySign                 },                function(res){                     switch(res.err_msg) {                         case 'get_brand_wcpay_request:cancel':                             messageFactory({text:'用户取消支付'});                             break;                         case 'get_brand_wcpay_request:fail':                             messageFactory({text:'支付失败!('+res.err_desc+')'});                             break;                         case 'get_brand_wcpay_request:ok':                             //alert('支付成功!');                             $state.go('orderDetails',{                                 'status':'success',                                'orderId':data.model.orderNum                             });                               break;                         default:                             alert(JSON.stringify(res));                             break;                     }                 }             );               rePayLock = false;         }           if (typeof WeixinjsBridge == "undefined"){             if( document.addEventListener ){                 document.addEventListener('WeixinjsBridgeReady',onBridgeReady,false);             }else if (document.attachEvent){                 document.attachEvent('WeixinjsBridgeReady',onBridgeReady);                 document.attachEvent('onWeixinjsBridgeReady',onBridgeReady);             }         }else{             onBridgeReady();         }     }       // 请求微信支付凭证     service.getmethod('/order/pay_order_pay.html',function(data){         //alert('成功请求微信支付凭证')         goToWeChatPay(data)     },{         'token': currentPage.loginState.token,        'userId': currentPage.loginState.userId,        'op':2,        's':2,        'payType':2,        'orderNum':orderId,        'openid':openId     }); }   作者当时是被第三方授权跳转的这一步卡住,最初设想是从A商品页面跳转到B支付页面,然后再从B页面拼接URL刷新页面拿到code,但是刷新莫名出现的问题导致拿不到code。 后来找朋友问到应该是从A商品页面拼接url跳转到B支付目录页面,然后成功支付。   然后就是微信返回信息判断方法,这个比微信文档里面提供的方法要强大很多。      微信支付

相关文章

开发微信小程序的用户授权登录功能
小程序开发页面如何实现跳转?
浅谈小程序开发中蓝牙连接错误分析及解决方法
什么是小程序?它有哪些功能?
如何配置小程序开发项目结构?(教程)
怎么把自己的店加入小程序