diff --git a/node_modules/jweixin-module/README.md b/node_modules/jweixin-module/README.md new file mode 100644 index 0000000..7c91d7b --- /dev/null +++ b/node_modules/jweixin-module/README.md @@ -0,0 +1,30 @@ +# jweixin-module + +微信JS-SDK + +## 安装 + +### NPM + +```shell +npm install jweixin-module --save +``` + +### UMD + +```http +https://unpkg.com/jweixin-module/out/index.js +``` + +## 使用 + +```js +var jweixin = require('jweixin-module') +jweixin.ready(function(){ + // TODO +}); +``` + +## 完整API + +>[微信JS-SDK说明文档](https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115) diff --git a/node_modules/jweixin-module/lib/index.js b/node_modules/jweixin-module/lib/index.js new file mode 100644 index 0000000..1b5014b --- /dev/null +++ b/node_modules/jweixin-module/lib/index.js @@ -0,0 +1 @@ +!function(e,n){"function"==typeof define&&(define.amd||define.cmd)?define(function(){return n(e)}):n(e,!0)}(window,function(o,e){if(!o.jWeixin){var n,c={config:"preVerifyJSAPI",onMenuShareTimeline:"menu:share:timeline",onMenuShareAppMessage:"menu:share:appmessage",onMenuShareQQ:"menu:share:qq",onMenuShareWeibo:"menu:share:weiboApp",onMenuShareQZone:"menu:share:QZone",previewImage:"imagePreview",getLocation:"geoLocation",openProductSpecificView:"openProductViewWithPid",addCard:"batchAddCard",openCard:"batchViewCard",chooseWXPay:"getBrandWCPayRequest",openEnterpriseRedPacket:"getRecevieBizHongBaoRequest",startSearchBeacons:"startMonitoringBeacons",stopSearchBeacons:"stopMonitoringBeacons",onSearchBeacons:"onBeaconsInRange",consumeAndShareCard:"consumedShareCard",openAddress:"editAddress"},a=function(){var e={};for(var n in c)e[c[n]]=n;return e}(),i=o.document,t=i.title,r=navigator.userAgent.toLowerCase(),s=navigator.platform.toLowerCase(),d=!(!s.match("mac")&&!s.match("win")),u=-1!=r.indexOf("wxdebugger"),l=-1!=r.indexOf("micromessenger"),p=-1!=r.indexOf("android"),f=-1!=r.indexOf("iphone")||-1!=r.indexOf("ipad"),m=(n=r.match(/micromessenger\/(\d+\.\d+\.\d+)/)||r.match(/micromessenger\/(\d+\.\d+)/))?n[1]:"",g={initStartTime:L(),initEndTime:0,preVerifyStartTime:0,preVerifyEndTime:0},h={version:1,appId:"",initTime:0,preVerifyTime:0,networkType:"",isPreVerifyOk:1,systemType:f?1:p?2:-1,clientVersion:m,url:encodeURIComponent(location.href)},v={},S={_completes:[]},y={state:0,data:{}};O(function(){g.initEndTime=L()});var I=!1,_=[],w={config:function(e){B("config",v=e);var t=!1!==v.check;O(function(){if(t)M(c.config,{verifyJsApiList:C(v.jsApiList),verifyOpenTagList:C(v.openTagList)},function(){S._complete=function(e){g.preVerifyEndTime=L(),y.state=1,y.data=e},S.success=function(e){h.isPreVerifyOk=0},S.fail=function(e){S._fail?S._fail(e):y.state=-1};var t=S._completes;return t.push(function(){!function(){if(!(d||u||v.debug||m<"6.0.2"||h.systemType<0)){var i=new Image;h.appId=v.appId,h.initTime=g.initEndTime-g.initStartTime,h.preVerifyTime=g.preVerifyEndTime-g.preVerifyStartTime,w.getNetworkType({isInnerInvoke:!0,success:function(e){h.networkType=e.networkType;var n="https://open.weixin.qq.com/sdk/report?v="+h.version+"&o="+h.isPreVerifyOk+"&s="+h.systemType+"&c="+h.clientVersion+"&a="+h.appId+"&n="+h.networkType+"&i="+h.initTime+"&p="+h.preVerifyTime+"&u="+h.url;i.src=n}})}}()}),S.complete=function(e){for(var n=0,i=t.length;n { if (res.return_code == '000000') { - alert('=============================') + // #ifdef MP uni.requestPayment({ "appId": res.return_data.appId, "nonceStr": res.return_data.nonceStr, @@ -139,9 +140,16 @@ }, fail: function(err) { uni.hideLoading(); - console.log('fail:' + JSON.stringify(err)); - } + }, }); + // #endif + + //判断是否是公众号 + // #ifdef H5 + //判断微信浏览器 + that.payRequest(res); + // #endif + } else { uni.showToast({ title: res.return_msg, @@ -189,6 +197,53 @@ }) } }, + payRequest: function(self) { + jweixin.config({ + debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 + appId: self.return_data.appId, // 必填,公众号的唯一标识 + timestamp: self.return_data.timeStamp, // 必填,生成签名的时间戳 + nonceStr: self.return_data.nonceStr, // 必填,生成签名的随机串 + signature: self.return_data.sign, // 必填,签名,见附录1 + jsApiList: ['chooseWXPay'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 + }); + jweixin.ready(function() { + jweixin.checkJsApi({ + jsApiList: ['chooseWXPay'], // 需要检测的JS接口列表,所有JS接口列表见附录2, + success: function(res) { + + }, + fail: function(res) { + + } + }); + jweixin.chooseWXPay({ + appId: self.return_data.appId, + timestamp: self.return_data.timeStamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符 + nonceStr: self.return_data.nonceStr, // 支付签名随机串,不长于 32 位 + package: self.return_data.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***) + signType: 'MD5', // 签名方式,默认为'SHA1',使用新版支付需传入'MD5' + paySign: self.return_data.sign, // 支付签名 + success: function(res) { + // 支付成功后的回调函数 + }, + cancel: function(r) { + }, + fail: function(res) { + } + }); + }); + + jweixin.error(function(res) { + uni.showToast({ + icon: 'none', + title: '支付失败了', + duration: 4000 + }); + // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。 + /*alert("config信息验证失败");*/ + }); + }, + } } diff --git a/pages/tabBar/user/user.vue b/pages/tabBar/user/user.vue index 18aaef6..70327dc 100644 --- a/pages/tabBar/user/user.vue +++ b/pages/tabBar/user/user.vue @@ -21,6 +21,7 @@ + + + + + + @@ -262,6 +276,12 @@ } }); }, + // H5获取手机号 + jumpH5Bding() { + uni.navigateTo({ + url:'/pages/login/register?id=2' + }) + }, //扫码 toScan() { uni.scanCode({