国产69囗曝吞精在线视频,肥臀浪妇太爽了快点再快点,亚洲欧洲成人a∨在线观看,狠狠色丁香久久综合 ,国精一二二产品无人区免费应用,亚洲精品久久久久中文字幕,四虎一区二区成人免费影院网址 ,无码三级中文字幕在线观看

      vue項(xiàng)目 微信支付 和 支付寶支付

      2019-7-2    seo達(dá)人

      如果您想訂閱本博客內(nèi)容,每天自動(dòng)發(fā)到您的郵箱中, 請(qǐng)點(diǎn)這里

      做了一個(gè)項(xiàng)目,有充值功能,充值方式為 微信和支付寶,效果如下:



      代碼:

      <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="請(qǐng)輸入金額" style="width: 150px;"></el-input>
      </li>
      </ul>
      <div style="text-align: center; margin-top: 30px;">
      <el-button type="primary" @click="surePay">確認(rèn)支付</el-button>
      </div>
      </el-card>
      </template>
       
      <script>
      export default {
      data() {
      return {
      amountVal: '',
      disabled: false,
      //充值參數(shù)
      rechargeParams: {
      "totalAmt": '', //金額
      "paymentType": "0", //支付方式[0:微信,1:支付寶,2:余額,3:活動(dòng)]
      "transType": "0" //交易類(lèi)型[0:充值,1:消費(fèi)]
      }
      }
      },
      methods: {
      //充值金額
      amountChange(val) {
      this.rechargeParams.totalAmt = val;
      if (val == '') {
      this.disabled = false
      } else {
      this.disabled = true
      }
      },
      //支付方式
      paymentTypeChange(val) {
      this.rechargeParams.paymentType = val
      },
      //確認(rèn)支付
      async surePay() {
      if (this.rechargeParams.totalAmt == '') {
      this.$message.warning('請(qǐng)輸入金額');
      return;
      }
      const res = await this.$http.post('orderInfo/createOrderInfo', this.rechargeParams)
      const {
      code,
      msg,
      result
      } = res.data
      if (code === '200') {
      //支付方式跳轉(zhuǎn)
      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('活動(dòng)支付')
      }
      } 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>
      支付寶方式:后臺(tái)會(huì)返回來(lái)一個(gè)form,然后提交form自動(dòng)跳轉(zhuǎn)到支付寶支付頁(yè)面。

      微信方式:需要自己根據(jù)后臺(tái)返回的url生成二維碼頁(yè)面,如圖所示:



      代碼:

      <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
      藍(lán)藍(lán)設(shè)計(jì)www.izc.net.cn )是一家專(zhuān)注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶(hù)體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 平面設(shè)計(jì)服務(wù)

      日歷

      鏈接

      個(gè)人資料

      存檔

      主站蜘蛛池模板: 狠狠色丁香婷婷久久综合不卡 | 麻豆91茄子在线观看| 欧美一卡二卡| 中文日韩在线观看| 自拍偷自拍亚洲精品情侣| 日本在线免费观看视频| 国产精品乱人伦一区二区| 亚在线观看免费视频入口| 强伦人妻一区二区三区视频18| 激情综合五月| 亚洲成aⅴ人片久青草影院按摩| 欧美日韩性| 免费一区视频| 久久精品国产网红主播| 日日猛噜噜狠狠扒开双腿小说| 人人爱人人看| 国产精品黄在线观看免费软件 | 国产在线精品观看| 久章草在线毛片视频播放| 亚洲国产熟妇在线视频| 天堂一区二区三区| 99re在线视频播放| 动漫av网站免费观看| 欧美熟妇性xxxx交潮喷| 亚洲人 女学生 打屁股 得到| 久久这里精品国产99丫E6| 亚洲综合另类小说色区大陆| 一区二区三区久久久| 中日一级片| 丰满少妇女裸体bbw| 亚洲乱码av中文一区二区软件 | 国产精品精品久久久| 婷婷国产天堂久久综合亚洲| 亚洲色图网址| 日本人毛片| 亚洲中文字幕无码久久| 国产丰满乱子伦无码专区| 午夜a视频| 94人妻少妇偷人精品| 亚洲中文字幕a∨在线| h在线|