Pay-Doc Pay-Doc
  • Home
  • 利用ガイド
  • APIリファレンス
  • FAQ
  • 更新履歴
  • 旧システムからの移行
  • お問い合わせ
Login
Pay-Doc Pay-Doc
Login
Pay-Doc Pay-Doc
  • Home
  • 利用ガイド
  • APIリファレンス
  • FAQ
  • 更新履歴
  • 旧システムからの移行
  • お問い合わせ
loading
  1. Home
  2. 利用ガイド
  3. 実装ガイド
  4. インラインフォーム – 概要
  5. 設置 – (JavaScript)
Updated on 2025年4月23日

利用ガイド

  • Folder icon closed Folder open iconはじめに(利用方法)
    • 免責事項
    • 利用方法
    • 初期設定
    • 利用可能な決済手段
    • 管理画面の使い方
    • 決済フォームの種類
    • トークンとは
    • 処理と課金の種類
    • 処理結果の通知と取得
    • 【重要】リカーリング時の注意点
    • 制限機能
    • 用語集
    • 開発後の動作検証
  • Folder icon closed Folder open icon実装ガイド
    • ウィジェット – 概要
      • 設置 – (HTML/JavaScript)
      • パラメータ(基本動作)
      • パラメータ(定期課金)
      • パラメータ(分割払い)
    • リンクフォーム – 概要
      • パラメータ(基本動作)
      • パラメータ(定期課金/分割払い)
    • インラインフォーム – 概要
      • 設置 – (HTML)
      • 設置 – (JavaScript)
      • パラメータ
  • Folder icon closed Folder open icon決済手段別 実装ガイド
    • 銀行振込 – 概要
      • 銀行振込 – 特徴
      • 銀行振込 – 要注意なパラメータ
      • 銀行振込 – APIへのリクエスト
    • コンビニ決済 – 概要
      • コンビニ決済 – 特徴
      • コンビニ決済 – 要注意なパラメータ
      • コンビニ決済 – APIへのリクエスト
    • オンライン決済 – 概要
      • オンライン決済 – 特徴
      • オンライン決済 – 要注意なパラメータ
      • オンライン決済 – APIへのリクエスト
    • Paidy – 概要
      • Paidy – 特徴
      • Paidy – 要注意なパラメータ
  • Folder icon closed Folder open icon各種機能詳細
    • 定期課金
      • リトライ
      • 停止・再開
    • 消費者によるお支払い方法の更新
      • 支払い情報の確認・変更画面
      • 1.消費者の利用フロー
      • 2.加盟店さまの設定
      • 3.消費者へのURLの共有方法
    • CSVデータのダウンロード
    • CSV課金
    • 商品
    • 処理結果のメール通知
      • テンプレートの種類
      • パラメータ
      • 応用的なパラメータの利用方法
    • ウェブフック
  • Folder icon closed Folder open icon3-Dセキュア
    • 3‐Dセキュア – 概要
    • 加盟店さまの設定・実装
    • デフォルトの3-Dセキュア実行ルール

設置 – (JavaScript)

インラインフォーム設置用のタグ

以下は、「支払う」と表示されたボタンでの、1000円を決済するためのインラインフォームの設置例です。

<script src="https://widget.univapay.com/client/checkout.js"></script>
<style>
  #univapay-payment-checkout {
    position: absolute;
    top: 360px;
  }
</style>

<form id="payment-form" onSubmit="handleSubmit()">
  <button id="univapay-payment-checkout">
   支払う
  </button>
</form>

<script>
  var checkout = UnivapayCheckout.create({
    appId: "<アプリトークンID>",
    checkout: "payment",
    amount: 1000,
    currency: "jpy",
    cvvAuthorize: true,
    inline: true,
  });
  window.onload = function () {
    checkout.open();
  }
  function handleSubmit() {
    event.preventDefault();
    var form = document.getElementById("payment-form");
    var iFrame = document.querySelector("iframe");
    UnivapayCheckout.submit(iFrame)
      .then(function (data) {
        form.submit();
        }).catch(function (errors) {
          console.error(errors);
      });
  };
</script>

まず、インラインフォームを含むページに次の行をHTMLでの設置と同様に含める必要があります

<script src="https://widget.univapay.com/client/checkout.js"></script>

支払うボタンについてのCSS styleの記述です。説明の都合上styleタグに記述しています。

<style>
  #univapay-payment-checkout {
    position: absolute;
    top: 360px;
  }
</style>

HTMLでの設置とは異なり、自動的にページ上にボタンは作成されませんので、タグとタグで送信するための記述をします。
submitイベントが発火に反応して、onSubmitに指定された関数”handleSubmit()”を呼び出します。

<form id="payment-form" onSubmit="handleSubmit()">
  <button id="univapay-payment-checkout">
   支払う
  </button>
</form>

<script>
<!--
タグ内にJavaScriptの記述をします
内容は以下で説明
-->
</script>

次に、UnivapayCheckout.createを呼び出す記述をします。
例えば、1000円の支払いを処理するインラインフォーム・オブジェクトを作成するには、以下を記述する必要があります。

  var checkout = UnivapayCheckout.create({
    appId: "<アプリトークンID>",
    checkout: "payment",
    amount: 100,
    currency: "jpy",
    cvvAuthorize: true,
    inline: true,
    inlineItemLabelstyle:,
  });

本サンプルではページの読み込みをした時にインラインフォームを表示させるため、onload関数の記述をしています。
event.preventDefault();で、form.submit();の動作させるタイミングを制御するために、一度formのデフォルト処理を防ぐ記述をします。
最後にUnivapayCheckout.submitを呼び出す記述をします。ボタンをクリックした時実際に支払いを行う処理を記述し、送信時エラーが発生した場合はその内容を返します。

  window.onload = function () {
    checkout.open();
  }
  function handleSubmit() {
    event.preventDefault();
    var form = document.getElementById("payment-form");
    var iFrame = document.querySelector("iframe");
    UnivapayCheckout.submit(iFrame)
      .then(function (data) {
        form.submit();
        }).catch(function (errors) {
          console.error(errors);
      });
  };

処理実行時にパラメータの値を上書きする関数

UnivapayCheckout.updateを利用することで、トークン作成前に任意の項目の値を更新することが出来ます。
この関数を利用することで、例えばパラメータでダミーの電話番号やメールアドレスを事前にして項目を非表示にしている場合、決済フォーム以外で入力されている正しい消費者の情報を更新しながらトークンを作成することが出来ます。
更新することが出来る項目は以下です。

UnivapayCheckout.update(
  parameters: {
    metadata?: Record<string, string | number | boolean | null>;
    name?: string;
    nameKana?: string;
    email?: string;
    phoneNumber?: {
        countryCode?: string;
        localNumber?: string;
    };
    address?: {
        line1?: string;
        line2?: string;
        city?: string;
        state?: string;
        zip?: string;
        countryCode?: string;
    }
  },
  options?: {
    forceUpdate?: boolean; //消費者が決済フォームに情報を入力していたとしても強制的に更新するかどうか
  }
)

サンプル

UnivapayCheckout.update(
            iFrame,
            { email: "updated-dummy-email@univapay.com",
              phoneNumber: {
               countryCode: "+81",
               localNumber: "08000000000"
              }
             },
        );

インラインフォームのデザインを制御するパラメータ

全て、インラインでのstyle記述と同じルールで記述してください。
備考欄に記載の要素に、インラインでstyleの値が記述されます。

フィールド
赤字は必須
※は条件付き必須
許容する値備考省略時の値
inlineItemStyle半角英数
+記号
ラベル、入力欄、エラーメッセージのセットが格納された
<div class="form-group form-group-sm">
と、それに内包される
<div class="checkbox">
に適用したいstyle
当社規定のCSS適用
inlineTextItemStyle〃<div class="form-group form-group-sm">
に適用したいstyle
ただし、内包される<div class="checkbox">には適用しない
(個別の指定が必要な場合)
〃
inlineToggleItemStyle〃<div class="checkbox">にのみ適用したいstyle
(個別の指定が必要な場合)
〃
inlineItemLabelStyle〃各入力欄のラベル
<label class="control-label">
にのみ適用したいstyle
〃
inlineTextItemLabelStyle〃テキスト入力フィールドに入力された文字のラベル
<label class="control-label">
にのみ適用したいstyle
〃
inlineFieldStyle〃テキスト入力フィールドに入力された文字と、チェックボックスのラベル
<span class="input-group">
に適用したいstyle
〃
inlineTextFieldStyle〃テキスト入力フィールドに入力された文字
<span class="input-group">
に適用したいstyle
ただし、内包される<div class="checkbox">には適用しない
(個別の指定が必要な場合)
〃
inlineItemErrorStyle〃エラーメッセージ
<div class="field-error">
に適用したいstyle
〃
inlineTextErrorStyle〃エラーメッセージ
<div class="field-error">
に適用したいstyle
ただし、内包される<div class="checkbox">には適用しない
(個別の指定が必要な場合)
〃
inlineFieldInvalidStyle〃テキスト入力フィールドに入力された文字が、無効と判定された場合
<input class="form-control input-sm">
に適用したいstyle
〃
inlineTextFieldInvalidStyle〃テキスト入力フィールドに入力された文字が、無効と判定された場合
<input class="form-control input-sm">
に適用したいstyle
ただし、内包される<div class="checkbox">には適用しない
(個別の指定が必要な場合)
〃
inlineTextToggleInvalidStyle〃<div class="checkbox">が無効のまま送信されようとした時に適用したいstyle
(個別の指定が必要な場合)
〃
inlineFieldForcusStyle〃テキスト入力フィールドがフォーカスされた時に
<span class="input-group-focus">
に適用したいstyle
〃
inlineTextFieldForcusStyle〃テキスト入力フィールドがフォーカスされた時に
<span class="input-group-focus">
に適用したいstyle
ただし、内包される<div class="checkbox">には適用しない
(個別の指定が必要な場合)
〃
inlineToggleFieldForcusStyle〃<div class="checkbox">がフォーカスされた時に適用したいstyle
(個別の指定が必要な場合)
〃
記述ルールについては免責事項を参照してください

コールバック

ウィジェットのページに記載してある内容と同様です。

Share this Doc

設置 – (JavaScript)

Or copy link

Clipboard Icon
CONTENTS

© All Rights Reserved by UNIVA Paycast Limited.