Omise.js에서 지불 금액을 동태적으로 변경하는 방법

14061 단어 omise.jsomiseVue.js

개시하다


카드 결제 시 카드 번호를 처리하기 위해 일반적으로 아래의 협의를 사용합니다

저번 서버에서 Omise의 API를 사용한다고 했을 때 신용카드 정보를 받을 때 고객측에서 하는 것이 가장 좋다고 말했다.이번에는 클라이언트의 영패 수발 부분을 설치해 보았다.
클라이언트가 Omise를 설치합니다.js 또는 Omise의 javascript 클라이언트를 사용하는 두 가지 방법이 있습니다.자바스크립트 클라이언트를 사용하려면 처음부터 신용카드를 입력하는 형식을 만들어야 하지만 자유롭게 맞춤형으로 제작할 수 있다.Omise.js를 사용하면 맞춤형이 어려울 수 있지만 신경을 쓰지 않으면 간단하게 사용할 수 있습니다.이번에는 Omise.제이스를 블루로 만들어.js로 실시해 보았지만, 동태적으로 가격의 변경을 진행할 수 있었다.

코드


우선 오미즈야.쓸 수 있게 하다.script 라벨로 js의 cdn을 감싸세요.순서는omise다.js로 들어오는 main.js 을 사용하기 전에 쓰십시오.
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>vuex shopping cart example</title>
  </head>
  <body>
    <script src="https://cdn.omise.co/omise.js"></script>
    <div id="app"></div>
    <script src="main.js"></script>
  </body>
</html>
omise.js는 다음과 같이 사용됩니다.
<template>
  <div class="cart">
    <h2>Your Cart</h2>
    <p v-show="!products.length"><i>Please add some products to cart.</i></p>
    <ul>
      <li v-for="product in products">
        {{ product.title }} - {{ "¥" + product.price  }} x {{ product.quantity }}
      </li>
    </ul>
    <p>Total: {{ "¥" + total }}</p>

    <p><button :disabled="!products.length" @click.prevent="checkout(total)">Checkout</button></p>

    <form action="https://postman-echo.com/post" id="my-custom-checkout-form" method="POST">
      <input type="hidden" :value="total" name="total">
      <input type="hidden" value="" name="omiseToken">
      <input v-for="product in products" type="hidden" :value="product.quantity" :name="product.id">
    </form>
    <p v-show="checkoutStatus">Checkout {{ checkoutStatus }}.</p>
  </div>
</template>

<script>
import { mapGetters, mapState } from "vuex"

export default {
  computed: {
    ...mapState({
      checkoutStatus: state => state.cart.checkoutStatus
    }),
    ...mapGetters("cart", {
      products: "cartProducts",
      total: "cartTotalPrice"
    })
  },
  methods: {
    checkout(total) {
      OmiseCard.open({
        frameLabel: "Merchant",
        submitLabel: "PAY RIGHT NOW !",
        amount: total
      })
    }
  },

  mounted() {
    OmiseCard.configure({
      publicKey: "pkey_test_???", // 公開鍵。ダッシュボードから取得できます
      image: "https://cdn.omise.co/assets/dashboard/images/omise-logo.png", 
      currency: "JPY",
      onCreateTokenSuccess: token => {
        const form = document.querySelector("#my-custom-checkout-form")
        form.omiseToken.value = token;
        form.submit()
      }
    })
    OmiseCard.attach()
  }
}
</script>

해설


  • 영패를 전달하는 표를 만듭니다.테스트용https://postman-echo.com/post을 사용했는데 기호 서버가 왔어요.
           <form action="https://postman-echo.com/post" id="my-custom-checkout-form" method="POST">
             <input type="hidden" :value="total" name="total">
             <input type="hidden" value="" name="omiseToken">
             <input v-for="product in products" type="hidden" :value="product.quantity" :name="product.id">
           </form>
    

  • 영패를 획득한 후 호출 호출을 만듭니다.카드 정보 등에 오류가 없으면 호출됩니다.1 에서 만든 폼을 제출합니다.이것은 페이지를 처음 불러올 때만 실행됩니다
         mounted() {
           OmiseCard.configure({
             publicKey: "pkey_test_???", // 公開鍵。ダッシュボードから取得できます
             image: "https://cdn.omise.co/assets/dashboard/images/omise-logo.png", 
             currency: "JPY",
             onCreateTokenSuccess: token => {
               const form = document.querySelector("#my-custom-checkout-form")
               form.omiseToken.value = token;
               form.submit()
             }
           })
           OmiseCard.attach()
         }
    

  • omise.js카드 정보를 입력하는 표의 함수를 호출합니다.이 가격amount은 납품된 매개 변수에 따라 동태적으로 변화한다.
      methods: {
          checkout(total) {
            OmiseCard.open({
              frameLabel: "Merchant",
              submitLabel: "PAY RIGHT NOW !",
              amount: total
            })
          }
    
  • 창고.


    시장 하면 베니스 상인.

    좋은 웹페이지 즐겨찾기