• <center id="sm46c"></center>
  • <dfn id="sm46c"></dfn>
  • <strike id="sm46c"></strike>
  • <cite id="sm46c"><source id="sm46c"></source></cite>
    • <strike id="sm46c"><source id="sm46c"></source></strike>
      <option id="sm46c"></option>
      国产精品天天看天天狠,女高中生强奷系列在线播放,久久无码免费的a毛片大全,国产日韩综合av在线,亚洲国产中文综合专区在,特殊重囗味sm在线观看无码,中文字幕一区二区三区四区在线,无码任你躁久久久久久老妇蜜桃

      vue項目 微信支付 和 支付寶支付

      2019-7-2    seo達人

      如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

      做了一個項目,有充值功能,充值方式為 微信和支付寶,效果如下:



      代碼:

      <template>
      <el-card class="box-card">
      <ul class="msg-box">
      <li>
      <h4>我要充值</h4>
      </li>
      <li>
      <h4 style="margin-bottom: 15px;">充值金額</h4>
      <el-radio-group v-model="amountVal" @change="amountChange">
      <el-radio border :label="''+ 100">充值100</el-radio>
      <el-radio border :label="''+ 500">充值500</el-radio>
      <el-radio border :label="''+ 1000">充值1000</el-radio>
      <el-radio border :label="''+ 2000">充值2000</el-radio>
      <el-radio border :label="''+ 5000">充值5000</el-radio>
      <el-radio border :label="''">自定義</el-radio>
      </el-radio-group>
      </li>
      <li>
      <h4 style="margin-bottom: 15px;">充值方式</h4>
      <el-radio-group v-model="rechargeParams.paymentType" @change="paymentTypeChange">
      <el-radio border :label="''+ 0">微信</el-radio>
      <el-radio border :label="''+ 1">支付寶</el-radio>
      </el-radio-group>
      </li>
      <li>
      <h4 style="margin-bottom: 15px;">充值金額</h4>
      <el-input :disabled="disabled" clearable v-model="rechargeParams.totalAmt" placeholder="請輸入金額" style="width: 150px;"></el-input>
      </li>
      </ul>
      <div style="text-align: center; margin-top: 30px;">
      <el-button type="primary" @click="surePay">確認支付</el-button>
      </div>
      </el-card>
      </template>
       
      <script>
      export default {
      data() {
      return {
      amountVal: '',
      disabled: false,
      //充值參數
      rechargeParams: {
      "totalAmt": '', //金額
      "paymentType": "0", //支付方式[0:微信,1:支付寶,2:余額,3:活動]
      "transType": "0" //交易類型[0:充值,1:消費]
      }
      }
      },
      methods: {
      //充值金額
      amountChange(val) {
      this.rechargeParams.totalAmt = val;
      if (val == '') {
      this.disabled = false
      } else {
      this.disabled = true
      }
      },
      //支付方式
      paymentTypeChange(val) {
      this.rechargeParams.paymentType = val
      },
      //確認支付
      async surePay() {
      if (this.rechargeParams.totalAmt == '') {
      this.$message.warning('請輸入金額');
      return;
      }
      const res = await this.$http.post('orderInfo/createOrderInfo', this.rechargeParams)
      const {
      code,
      msg,
      result
      } = res.data
      if (code === '200') {
      //支付方式跳轉
      if (this.rechargeParams.paymentType == '0') {
      this.$message.success('微信支付');
      this.wechatPay(result);
      } else if (this.rechargeParams.paymentType == '1') {
      this.$message.success('支付寶支付')
      const payDiv = document.getElementById('payDiv');
      if (payDiv) {
      document.body.removeChild(payDiv);
      }
      const div = document.createElement('div');
      div.id = 'payDiv';
      div.innerHTML = result;
      document.body.appendChild(div);
      document.getElementById('payDiv').getElementsByTagName('form')[0].submit();
      } else if (this.rechargeParams.paymentType == '2') {
      this.$message.success('余額支付成功');
      this.$router.push({
      name: 'order'
      })
      } else {
      this.$message.success('活動支付')
      }
      } else if (code === 401) {
      this.$message.error(msg)
      this.$router.push({
      name: 'login'
      })
      } else {
      this.$message.error(msg)
      }
      },
      //微信支付
      wechatPay(result) {
      if (result) {
      const orderParams = JSON.parse(result);
      sessionStorage.qrurl = orderParams.qrurl;
      sessionStorage.amt = orderParams.amt;
      sessionStorage.returnUrl = orderParams.returnUrl;
      sessionStorage.order_id = orderParams.order_id;
      this.$router.push({
      name: 'wechatPay'
      })
      }
      }
      }
      }
      </script>
       
      <style scoped>
      /* 信息列表樣式 */
      .msg-box > li {
      list-style: none;
      border-bottom: 1px solid #c5c5c5;
      padding: 20px 10px;
      }
      </style>
      支付寶方式:后臺會返回來一個form,然后提交form自動跳轉到支付寶支付頁面。

      微信方式:需要自己根據后臺返回的url生成二維碼頁面,如圖所示:



      代碼:

      <template>
      <div class="payBox">
      <div class="img-logo">
      <img src="http://img.huoxingbeidiao.com/public/WePayLogo.png" alt="">
      </div>
      <div class="info-box">
      <div style="padding-bottom: 20px;">
      <qrcode-vue :value="qrurl" :size="200" level="H"></qrcode-vue>
      </div>
      <img src="http://img.huoxingbeidiao.com/public/WePayInfo.png" alt="">
      <p class="price">¥&nbsp;{{amt}}</p>
      </div>
      </div>
      </template>
       
      <script>
      import QrcodeVue from 'qrcode.vue'
      export default {
      data() {
      return {
      amt: 0,
      qrurl: '',
      timer: null
      }
      },
      components: {
      QrcodeVue
      },
      methods: {
      getOrderInfo() {
      if (sessionStorage.qrurl && sessionStorage.amt) {
      this.qrurl = sessionStorage.qrurl;
      this.amt = sessionStorage.amt;
      }
      },
      startLoop() {
      this.timer = setInterval(() => {
      this.isPaySuccess()
      }, 3000)
      },
      async isPaySuccess() {
      const orderId = sessionStorage.order_id;
      const res = await this.$http.get('orderInfo/queryOrder?orderId=' + orderId)
      const {
      code,
      msg,
      resultList
      } = res.data
      if (code === '200') {
      clearInterval(this.timer);
      this.timer = null;
      sessionStorage.removeItem('qrurl');
      sessionStorage.removeItem('amt');
      sessionStorage.removeItem('order_id');
      sessionStorage.removeItem('returnUrl');
      setTimeout(() => {
      this.$router.push({
      name: 'order'
      })
      }, 3000)
      } else if (code === 401) {
      clearInterval(this.timer);
      this.timer = null;
      sessionStorage.removeItem('qrurl');
      sessionStorage.removeItem('amt');
      sessionStorage.removeItem('order_id');
      sessionStorage.removeItem('returnUrl');
      this.$message.error(msg)
      this.$router.push({
      name: 'login'
      })
      } else {
       
      }
      }
      },
      created() {
      this.getOrderInfo()
      this.startLoop()
      },
      beforeDestroy() {
      clearInterval(this.timer)
      this.timer = null
      }
      }
      </script>
       
      <style scoped>
      .payBox {
      width: 1000px;
      margin: 0 auto;
      }
       
      .payBox .img-logo {
      padding: 20px 0;
      text-align: center;
      }
       
      .payBox .img-logo img {
      width: 180px;
      }
       
      .info-box {
      padding: 60px 0;
      border-top: 3px solid #F43B66;
      -webkit-box-shadow: 0 0 32px 0 rgba(0, 0, 0, .18);
      box-shadow: 0 0 32px 0 rgba(0, 0, 0, .18);
      text-align: center;
      }
       
      .info-box .price {
      color: #F43B66;
      font-size: 40px;
      padding-top: 20px;
      padding-bottom: 20px;
      border-bottom: 1px solid #f1f1f1;
      }
      </style>
      需要安裝qrcode.vue

      npm install --save qrcode.vue  或  yarn add qrcode.vue
      藍藍設計www.li-bodun.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

      日歷

      鏈接

      個人資料

      藍藍設計的小編 http://www.li-bodun.cn

      存檔

      主站蜘蛛池模板: 欧美在线视频a| 桃花岛亚洲成在人线AV| 亚洲欧洲日产国码无码AV一| 亚洲日本一区二区一本一道| 日韩高清中文字幕| 亚洲视频99| 玩弄少妇肉体到高潮动态图| 国产一区日韩二区欧美三区 | 97se色综合一区二区二区| 无码人妻一区二区三区免费手机| 亚洲 欧美 动漫 少妇 自拍 | 久久人妻国产精品31| 无码AV中文字幕久久专区| 性欧美视频videos6一9| 高h纯肉无码视频在线观看| 亚洲av日韩av综合aⅴxxx| 国产欧美久久久精品影院| 欧美精品在线观看视频| 国产欧美日韩在线观看精品| 日韩免费无码一区二区视频| 在线观看热码亚洲AV每日更新| 国产免费午夜福利不卡片在线| 亚洲精品一区二区三区无码a片| 99久久精彩视频| 国产成人无码a在线观看不卡 | 久久亚洲国产成人影院| 亚洲啪啪网| 亚洲欧美综合中文| 无码人妻精品一区二| 亚洲一区二区三区自拍麻豆| 欧美成本人视频免费播放 | 国产欧美日韩综合在线第一| 亚洲精品久久久久久久观看| 国产精品成人网站| 国产91久久精品成人看| 精品免费人成视频网| 丁香五月亚洲综合在线国内自拍| 国产精品亚洲一区二区三区喷水 | 欧美交换配乱吟粗大视频| 亚洲欧洲日韩精品在线| 国产成人精品一区二区三区|