vue 模拟支付宝六位密码支付,直接上代码

21 篇文章 0 订阅
<template>
  <div class="pwdpush-box">
    <h4 class="enter-password" @click="enterPwd">输入密码</h4>
    <div class="phonenum-show"  :class="pushShow?'':'write-phonenum-1000'">
      <div class="write-phonenum">
        <p @click.prevent="pushShow = false">使用余额支付 8864</p>
        <p>支付密码:</p>
        <ul class="write-input clearfix">
          <input type="tel"  ref="input" maxlength="6" class="realInput" v-model="realInput" autofocus @keyup="getNum()"  v-focus @keydown="delNum()">
          <li v-for="disInput in disInputs"><input type="tel" maxlength="1" disabled  v-model="disInput.value"></li>
        </ul>
        <mt-button size="large" style="margin-top:80px;" @click="goPay">确认支付</mt-button>
      </div>
    </div>
  </div>
</template>

<script>
import { Field,Toast ,Indicator} from 'mint-ui';
import {headerNav,bottomShow} from '../../vuex/actions/actionDoc'
export default {
  name: 'packe',
  vuex: {
    actions:{
      headerNav,
      bottomShow
    }
  },
  data(){
    return{
      messagepacket:false,
      packets:[

      ],
      disInputs:[{value:''},{value:''},{value:''},{value:''},{value:''},{value:''}],
      realInput:'',
      pushShow:false

    }
  },
  mounted(){
    this.headerNav(false)
    this.bottomShow(false)
  },
  methods:{
    getNum(){
      for(var i=0;i<this.realInput.length;i++){
        this.disInputs[i].value=this.realInput.charAt(i)
        // 表示字符串中某个位置的数字,即字符在字符串中的下标。
      }
    },
    delNum(){
      var oEvent = window.event;
      if (oEvent.keyCode == 8) {
        if(this.realInput.length>0){
          this.disInputs[this.realInput.length-1].value=''
        }
      }
    },
    goPay(){
        console.log(this.realInput)
    },
    enterPwd(){
        this.pushShow = true;
        this.$refs.input.focus()
    }
  }
}
</script>
<style lang="less" sconed>
  .enter-password{
    text-align: right;
    color:#1D890D;
    font-size: 18px;
    line-height: 2;
    margin-top:20px;
    padding-right: 20px;
  }
  .phonenum-show{
    background: rgba(0,0,0,0.6);
    position: absolute;
    top:0;
    right:0;
    bottom:0;
    left:0;
    z-index: -1;
  }
  .getback-title span{position: absolute;right:0;top:3px;width:15px;height:15px;display: inline-block;}
  .write-phonenum-1000{
    top:-1000px!important;
  }
  .write-phonenum{
    position: absolute;
    top:50%;
    margin-top:-100px;
    left:0;
    right:0;
    bottom:0;
    z-index: 2;
    padding:30px 10px 0;
    background: #fff;
  }
  .write-phonenum p{
    font-size: 14px;
    margin-left:30px;
    line-height:2;
  }
  .write-phonenum p span{color: #3b90d1;}
  .write-input {width:312px; margin:10px auto; position: relative;}
  .write-input li{float: left;width:30px;height:30px; margin: 0 10px; border:1px solid #888888;}
  .write-input li input{-webkit-appearance: none;-moz-appearance: none;-ms-appearance: none;resize: none;outline: none;border:0;width:30px;line-height: 30px;text-align: center;height: 30px;font-size:16px;}
  .write-phonenum .mint-button--default{background: #3b90d1;color:#fff;font-family: "微软雅黑";font-size: 14px;width:80%;margin:10px auto;}
  .realInput{
    /* Keyword values */
    -webkit-appearance: none;
    -moz-appearance: none;
    -ms-appearance: none;
    resize: none;
    outline: none;
    border: 0;
    z-index: 3;
    position: absolute;
    width: 290px;
    height: 30px;
    line-height: 30px;
    background: none;
    display: block;
    left: 50%;
    margin-left: -145px;
    top: 34px;
    opacity: 0;
    font-size: 0px;
    caret-color: #fff;
    color: #000;
    text-indent: -5em;
    font-size: 30px;
    top:1px;
  }
  input[type="tel"]:disabled{background-color: #fff;}
</style>
有问题欢迎评论
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是一个简单的Spring Boot和Vue.js应用程序中的支付宝沙箱支付代码示例: 在Spring Boot项目中: 1. 添加以下依赖: ``` <dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>4.3.0.ALL</version> </dependency> ``` 2. 创建一个包含支付宝配置信息的类,例如: ``` @Configuration public class AlipayConfig { private String appId; private String privateKey; private String publicKey; private String notifyUrl; private String returnUrl; private String gatewayUrl; // getters and setters } ``` 3. 创建一个返回AlipayClient的方法: ``` @Bean public AlipayClient getAlipayClient() { return new DefaultAlipayClient( alipayConfig.getGatewayUrl(), alipayConfig.getAppId(), alipayConfig.getPrivateKey(), "json", "UTF-8", alipayConfig.getPublicKey(), "RSA2" ); } ``` 4. 在控制器中创建支付接口,例如: ``` @Autowired private AlipayClient alipayClient; @Autowired private AlipayConfig alipayConfig; @PostMapping("/pay") public String pay(@RequestParam String orderNo, @RequestParam String amount) throws AlipayApiException { AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest(); alipayRequest.setReturnUrl(alipayConfig.getReturnUrl()); alipayRequest.setNotifyUrl(alipayConfig.getNotifyUrl()); alipayRequest.setBizContent("{\"out_trade_no\":\"" + orderNo + "\"," + "\"total_amount\":\"" + amount + "\"," + "\"subject\":\"" + "测试订单" + "\"," + "\"body\":\"" + "测试订单" + "\"," + "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}"); String form = alipayClient.pageExecute(alipayRequest).getBody(); return form; } ``` 在Vue.js中: 1. 创建一个按钮来启动支付流程: ``` <template> <div> <button @click="pay">Pay Now</button> </div> </template> ``` 2. 在脚本部分中创建一个调用支付接口的方法: ``` <script> export default { methods: { pay() { axios.post('/api/pay', { orderNo: '123456', amount: '0.01' }) .then(response => { let form = response.data; document.write(form); // 打开支付页面 }) .catch(error => { console.log(error); }); } } } </script> ``` 请注意,以上示例只适用于测试环境,如果您想在生产环境中使用支付宝支付,您需要进行更多的测试和配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值