zoukankan      html  css  js  c++  java
  • 微信授权

    授权页面

    <template>
      <div>
        正在拉取微信授权...
        <p>
          <a href="javascript:" @click="gotoWechat()">登陆微信</a>
        </p>
      </div>
    </template>
    <style scoped>
    
    </style>
    
    <script type="text/ecmascript-6">
      import {WECAHT} from '../../../config/lib'
      export default{
        data () {
          return {
            msg: 'hello vue',
            appId: WECAHT.appId,
            uri: WECAHT.uri//微信授权后回调地址
          }
        },
        components: {},
        created () {
    
        },
        mounted () {
          this.gotoWechat()
        },
        methods: {
          gotoWechat () {
            let timestamp = new Date().getTime()
            let url = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${ this.appId }&redirect_uri=${encodeURIComponent(this.uri)}&response_type=code&scope=snsapi_userinfo&state=${ timestamp }&connect_redirect=1#wechat_redirect`
            window.location.href = url;
          }
        }
    
      }
    </script>

    判断是否授权

     let code = ''
    //        https://open.weixin.qq.com/connect/oauth2/authorize?appid=???&redirect_uri=http%3A%2F%2Fwww.haikeuu.com%2FHaikeMobileApp%2F%23%2Fappointment&response_type=code&scope=snsapi_userinfo&state=1502173850125&connect_redirect=1#wechat_redirect
            if (GetUrlQuery('code')){
              sessionStorage.wechatCode = GetUrlQuery('code') || ''
              this.$store.commit('SET_WECHAT',{code:GetUrlQuery('code')})
              log(this.$store.state.wechat.code)
            }
            if (!sessionStorage.wechatCode){
              //this.$router.push('wechatAuthorize')
          跳转授权页面
    return }

    截取code参数

    /* 获取 URL 参数
    * params 要获取的参数名
    * */
    export const GetUrlQuery = params => {
      let reg = new RegExp("(^|&)" + params + "=([^&]*)(&|$)", "i");
      let r = window.location.search.substr(1).match(reg);  //获取url中"?"符后的字符串并正则匹配
      let context = "";
      if (r != null)
        context = r[2];
      reg = null;
      r = null;
      return context == null || context == "" || context == "undefined" ? "" : context;
    }

    发取支付

    //保存订单发起
    this
    .$getData.saveOrder(p, (res)=> { if (res.status == 'S') { let p2 = { mealId: res.data.mealId, code: sessionStorage.wechatCode } var _this = this // 微信支付 生成微信订单号 这个接口都是后台提供 this.$getData.wxPayment(p2, r => { WeixinJSBridge.invoke( 'getBrandWCPayRequest', r.data, function (res) { if (res.err_msg == "get_brand_wcpay_request:ok") { _this.$vux.toast.show({ text: '支付成功,3秒后返回', type: 'success' }) setTimeout(()=> { window.location.href = '#/appointment' }, 3000) // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回 ok,但并不保证它绝对可靠。 } else { _this.$vux.toast.show({ text: '支付失败', type: 'cancel' }) } } ); }) } else { this.$vux.toast.show({ text: res.msg, type: 'cancel' }) } })
  • 相关阅读:
    [Luogu P3626] [APIO2009] 会议中心
    杭电 1869 六度分离 (求每两个节点间的距离)
    杭电 1874 畅通工程续 (求某节点到某节点的最短路径)
    最短路径模板
    杭电 2544 最短路径
    POJ 1287 Networking (最小生成树模板题)
    NYOJ 1875 畅通工程再续 (无节点间距离求最小生成树)
    POJ 2485 Highways (求最小生成树中最大的边)
    杭电 1233 还是畅通工程 (最小生成树)
    杭电 1863 畅通工程 (最小生成树)
  • 原文地址:https://www.cnblogs.com/chenzxl/p/12517080.html
Copyright © 2011-2022 走看看