微信支付

前端之家收集整理的这篇文章主要介绍了微信支付前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

<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支付目录页面,然后成功支付。   然后就是微信返回信息判断方法,这个比微信文档里面提供的方法要强大很多。      

猜你在找的微信小程序相关文章