石广澎
2024-08-03 1499bacfed2d21cffc75af31ed5c9c67864cc0e4
pay/scanpay.vue
@@ -31,16 +31,27 @@
               </view>
               <view class="mask" @click="showBord"></view>
            </view>
            <!--      <image v-if="isNew&&(this.payWay == 2&&!UNIONID)" @click="toRegister" class="reg-btn" src="/static/register-btn.png" mode=""></image>-->
            <block v-if="shopInfo.userCouponFlag==0">
          <view class="u-font-26 u-tips-color u-p-t-24">微信搜索或直接点击打开
            <text style="color: #1E8BE0">【冀优邮】</text>
            小程序,享受更多优惠
        <view v-if="payWay==2" class="u-tips-color u-p-t-24">
          <wx-open-launch-weapp id="launch-btn" appid="wx47b3b5ca64bc7d5d" path="pages/index/index">
            <script type="text/wxtag-template">
              <style>
                .txt {
                  font-size: 13px;
                  color: #999
                }
                .btn {
                  font-size: 13px;
                  color: #1E8BE0
                }
              </style>
              <span class="txt">微信搜索或直接点击打开</span>
              <span class="btn">【冀优邮】</span>
              <span class="txt">小程序,享受更多优惠</span>
            </script>
          </wx-open-launch-weapp>
          </view>
        </block>
         </view>
         <block v-if="shopInfo.userCouponFlag==1">
      <block v-if="payWay==2&&shopInfo.userCouponFlag==1">
            <view class="bg-fff u-m-32 u-br-10">
               <view class="u-flex u-p-24 u-border-bottom">
                  <!-- <u-icon name="coupon-fill" size="60rpx" color="#D31F28"></u-icon> -->
@@ -53,26 +64,9 @@
                     <u-icon class="u-m-l-10" name="arrow-right" color="#999" size="16"></u-icon>
                  </view>
               </view>
          <view>
            <wx-open-launch-weapp
                id="launch-btn"
                appid="wx47b3b5ca64bc7d5d"
                path="pages/index/index"
            >
              <script type="text/wxtag-template">
                <style>.btn { padding: 12px }</style>
                <button class="btn">打开小程序</button>
              </script>
            </wx-open-launch-weapp>
          </view>
               <view class="u-font-26 u-tips-color u-p-24">微信搜索或直接点击打开
                  <text style="color: #1E8BE0">【冀优邮】</text>
                  小程序,享受更多优惠
               </view>
            </view>
         </block>
         <block v-if="shopInfo.userCouponFlag==1&&discount">
      <block v-if="payWay==2&&shopInfo.userCouponFlag==1&&discount">
            <view class="u-m-32 u-br-10 bg-fff">
               <view class="u-p-24 u-flex u-row-between u-border-bottom">
                  <view class="u-font-32 color-333">抵扣金额</view>
@@ -93,7 +87,7 @@
            <key-bord @changeMoney="changeMoney" :num.sync="money" @close="bordShow = false" @pay="pay"></key-bord>
         </u-popup>
         <!-- 优惠券弹窗 -->
         <u-popup mode="bottom" :closeable="true" :show="couponShow" @close="couponShow = false" :round="10">
      <u-popup v-if="payWay==2" mode="bottom" :closeable="true" :show="couponShow" @close="couponShow = false" :round="10">
            <view class="u-font-32 color-333 u-text-center u-p-t-30">优惠券</view>
            <view v-if="checkCoupon.id" class="choose-coupon">
               已选择优惠券1张,共抵扣¥{{ parseFloat((checkCoupon.discount / 100).toFixed(2)) }}
@@ -161,11 +155,12 @@
            buyerNote: '',
            showRemark: false,
            UNIONID: null,
            payWay: this.$utils.getPlat(),
      payWay: this.$utils.getPlat(), //2 维信 5支付宝
            cid: '', //码牌id  C扫B静态码时有
        activityQrcodeId: '', //动态收款码  C扫B动态码时有
        shopId: '', //商户id  C扫B动态码时有
            bordShow: false, // 显示键盘
      orderId: '',
            shopInfo: {
               cusid: '',
               shopName: '',
@@ -206,6 +201,11 @@
         }
      },
      onLoad(opt) {
    uni.setStorageSync('CID', opt.cid)
    uni.setStorageSync('SHOPID', opt.shopId)
    uni.setStorageSync('SMONEY', opt.smoney)
    uni.setStorageSync('AQCI', opt.activityQrcodeId)
    this.UNIONID = uni.getStorageSync('UNIONID' + this.payWay) || null
         this.isNew = uni.getStorageSync('IS_NEW')
         if (opt.smoney) {
            this.smoney = opt.smoney
@@ -226,9 +226,15 @@
            this.init()
         }
         if (opt.code || opt.auth_code) {
      let params = {
        code: opt.code
      }
            let code = opt.code
      if (this.payWay == 2&&opt.state == 1 ) {
        params.getUserInfo = 1
      }
            if (this.payWay == 5) {
               code = opt.auth_code
        params.code = opt.auth_code
            }
        const cd = uni.getStorageSync('cd')
        if(code===cd){
@@ -237,9 +243,7 @@
        uni.setStorageSync('cd',code)
            userLogin({
               platform: this.payWay,
               params: {
                  code
               }
        params
            }).then(res => {
               this.getToken(res)
            })
@@ -247,6 +251,7 @@
      },
      methods: {
    /*关闭页面*/
         clickDone() {
            let browser = navigator.userAgent.toLowerCase();
            if (browser.match(/Alipay/i) == "alipay") {
@@ -273,14 +278,16 @@
               window.close()
            }
         },
    /*登录*/
         getToken(res) {
            this.token = res.token
            if (res.openid) {
               uni.setStorageSync('OPENID' + this.payWay, res.token)
        uni.setStorageSync('OPENID' + this.payWay, res.openid)
            }
            if (res.unionid) {
               uni.setStorageSync('UNIONID' + this.payWay, res.token)
        uni.setStorageSync('UNIONID' + this.payWay, res.unionid)
            }
      this.UNIONID = res.unionid
            uni.setStorageSync(ACCESSTOKEN, res.token)
            uni.setStorageSync('IS_NEW', res.isNew)
            this.isNew = res.isNew
@@ -288,18 +295,14 @@
               this.showCoupon()
            }
         },
    /*授权unionid*/
         toRegister() {
            if (this.UNIONID) {
               uni.navigateTo({
                  url: '/pay/register?cid=' + this.cid
               })
            }
            if (this.payWay == 2) {
               const redirect_uri = encodeURIComponent(`${config.webURL}/pay/scanpay?cid=${opt.query.cid}`)
        const redirect_uri = encodeURIComponent(`${config.webURL}/pay/scanpay?cid=${this.cid || ''}&shopId=${this.shopId || ''}&activityQrcodeId=${this.activityQrcodeId || ''}&smoney=${this.smoney || ''}`)
        uni.clearStorageSync()
               window.location.href =
                  `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${config.wx_appid}&redirect_uri=${redirect_uri}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`
            `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${config.wx_appid}&redirect_uri=${redirect_uri}&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect`
            }
         },
         // 更新金额
         changeMoney(str) {
@@ -358,8 +361,9 @@
              debug: false, // 开启调试模式
              appId: res.appId, // 必填,公众号的唯一标识
              timestamp: res.timestamp, // 必填,生成签名的时间戳
              nonceStr: res.nonceStr, // 必填,生成签名的随机串
            nonceStr: res.noncestr, // 必填,生成签名的随机串
              signature: res.signature, // 必填,签名
            jsApiList: ['hideAllNonBaseMenuItem'], // 必填,需要使用的JS接口列表
              openTagList: ['wx-open-launch-weapp'] //可选,需要使用的开放标签列表
            });
            wx.ready(function () {
@@ -370,17 +374,22 @@
         },
         // 获取会员相关信息
         showCoupon() {
      if(this.UNIONID){
      //获取用户优惠券
            queryUseSweepPayCoupon({
              params: {
                cusid: this.shopInfo.cusid,
                cid: this.cid,
            applyPayWayStr: this.payWay,
            cusid: this.shopInfo.id,
                money: Number(this.money * 100),
              }
            }).then(res => {
              this.couponList = res
              this.couponShow = true
      })
      }else{
        this.toRegister()
      }
         },
         //选择优惠券
         clickCoupon(item) {
@@ -486,15 +495,16 @@
                  // 取消
                  this.closeOrder()
               } else {
                  this.closeOrder()
                  // 支付失败
          this.closeOrder()
               }
            });
         },
         closeOrder() {
            closeOrder({
      closeOrder({params:{
               id: this.orderId,
            }).then(res => {})
      }}).then(res => {
      })
         }
      }
   };