加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

微信支付

发布时间:2020-12-14 19:45:15 所属栏目:资源 来源:网络整理
导读: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
<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支付目录页面,然后成功支付。 ? 然后就是微信返回信息判断方法,这个比微信文档里面提供的方法要强大很多。 ? ? ?(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

<table class="text">

    推荐文章
      热点阅读