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. 設置 – (HTML/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セキュア実行ルール

設置 – (HTML/JavaScript)

このページは初期設定が完了し、ウィジェットの概要が通読されていることを前提に作成しています。

「ウィジェットの概要」で説明の通り、支払い方法の選択次第で「決済」でなく「申込」がなされる可能性があるため、このページでは、ウィジェットで行われる「決済または申込」を「処理」と表現します。

HTMLで設置する

ウィジェットをHTMLで設置するには、1行の<script>タグと、1つの<form>タグを用います。

<form>タグの中には<span>要素でパラメータ(各種フィールドとその値)を記述します。

アプリトークンは非常に長く規則性のない文字列なので、事前に管理画面でアプリトークンを控えるか、ジェネレータからのコピーを推奨します。

サンプルコード

以下は、「支払う」と表示されたボタンでの、1000円を決済するためのウィジェットの設置例です。

<script src="https://widget.univapay.com/client/checkout.js"></script>
<form action="<任意のURL>">
 <span data-app-id="<アプリトークンID>"
      data-txt="支払う"
      data-checkout="payment"
      data-amount="1000"
      data-currency="jpy"
      data-auto-submit="true"
 ></span>
</form>

処理完了後の動作

処理の完了後、form action= で指定した”<任意のURL>”に対し、以下をsubmitします。

  • トランザクショントークン(data-checkout-type=“token”指定時には univapayTokenId)
  • 決済番号(data-checkout-type=“payment” 指定時には univapayChargeId 、data-token-type=“subscription” 指定時には univapaySubscriptionId)

処理結果によって、消費者の画面遷移をコントロールしたい場合は、これらを取得するプログラムを作成してください。

パラメータ(基本動作)で解説の通り、data-auto-submitを利用することにより、完了ボタンを押してウィジェットを閉じた時、ウィジェットが含まれるフォームを自動でsubmitする設定も可能です。

上記を利用して、spanタグの外側に設置したformタグのaction属性に指定したURLに遷移するようにすることも可能です。

JavaScriptで設置する

Javascriptでウィジェットを設定する際は、<script>タグを利用することで、HTMLファイル内にJacaScriptのコードを埋め込んでウィジェットを設置することもできます。

サンプルコード

以下は、「支払う」と表示されたボタンでの、1000円を決済するためのウィジェットの設置例です。

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

<form id="payment-form" action="https://docs.univapay.com/docs/guide/implement/widget">
  <button id="univapay-payment-checkout">
   支払う
  </button>
</form>

<script>
  var checkout = UnivapayCheckout.create({
    appId: "<TOKEN>",
    checkout: "payment",
    amount: 100,
    currency: "jpy",
    cvvAuthorize: true,

    onSuccess: function () {
      var form = document.querySelector("#payment-form");
      form.submit();
    }
  });

  var button = document.querySelector("#univapay-payment-checkout");
  button.onclick = function () {
    checkout.open();
  };

</script>

まず、ウィジェットを含むページに次の行をHTMLでの設置と同様に含める必要があります。

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

HTMLでの設置とは異なり、自動的にページ上にボタンは作成されませんので、<form>タグと<button>タグで送信するための記述をします。
submitイベントが発火に反応して、actionで指定されたURLに遷移します。

<form id="payment-form" action="https://docs.univapay.com/docs/guide/implement/widget">
  <button id="univapay-payment-checkout">
   支払う
  </button>
</form>

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

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

var checkout = UnivapayCheckout.create({
  appId: "<TOKEN>",
  checkout: "payment",
  amount: 1000,
  currency: "jpy",

次に、actionで指定したURLに遷移させるためのsubmitの処理を記述します。
今回はonSuccessを利用し、処理が成功したことでformをsubmitさせるような記述をします。

    onSuccess: function () {
      var form = document.querySelector("#payment-form");
      form.submit();
    }    
  });  

最後に、<button>タグのonclick関数の処理を記述します。UnivapayCheckout.createによって返されたオブジェクトでopen関数を呼び出すことにより、ウィジェットを開きます。

  var button = document.querySelector("#univapay-payment-checkout");
  button.onclick = function () {
    checkout.open();
  };

ウィジェットのデザインを制御するパラメータ

以下パラメータにより、ウィジェットのデザインが変更可能です。
その他、どんな処理をさせるか等の動作詳細は、左メニューから各種パラメータを参照のうえ、実装してください。

各フィールド名について

  • data-で始まる、ケバブケース(kebab-case)で記載のフィールド名はHTML用
  • 2行目にローワーキャメルケース(lowerCamelCase)で記載のフィールド名はJavaScript用
  • いずれかしか記載のないものは、いずれかのみで利用可能
フィールド許容する値備考省略時の値
data-textテキスト(無制限)ウィジェットを展開するためのボタン内テキストPay with UnivaPay
data-size半角英ウィジェットを展開するためのボタンサイズ
指定可能な値:
small,normal,large
data-class半角英数ウィジェットを展開するためのボタンのclass属性に付与する値
webサイト側のstyleを記述を適用可能
data-style半角英数ウィジェットを展開するためのボタンのstyle属性に付与する値
webサイト側のstyleを適用せず、インラインでstyle記述したい場合に利用
data-hover-style半角英数ウィジェットを展開するためのボタンのhover時のstyle(インライン記述)
data-header
header
テキスト(無制限)ウィジェットのヘッダーに表示したいテキスト本サービス名
data-title
title
テキスト(無制限)ウィジェットのサブヘッダーに表示したい店舗名管理画面での設定に依存
data-description
description
テキスト(無制限)ウィジェットのサブヘッダーの、店舗名の下に表示したいテキスト管理画面での設定に依存
data-submit-button-text
submitButtonText
テキスト(無制限)ウィジェットの「支払い」ボタンに、代わりに表示したいテキスト支払う
記述ルールについては免責事項を参照してください

ウェブフック

処理の結果は、JSONデータとして管理画面の「Webhook」セクションで指定されたURLにPOSTされます。

「リファレンス > ウェブフック」を参照して、POSTされたデータを取得して注文状況などを更新するスクリプトを作成してください。

コールバック

ウィジェットタグ内のソースコードに下記の関数を定義しておくことで、各イベントが発生した時にその内容を含めた通知を実行します。
処理結果に応じて元のページの表示内容や、遷移先をコントロールしたい場合は、こちらか、フォームタグからsubmitされる値を利用してください。

イベント内容
Opened (univapay:opened)決済フォームを開くことで発生するイベントです。その他の情報は含みません。
Closed (univapay:closed)決済フォームを閉じることで発生するイベントです。他の情報は含みません。
Success (univapay:success)決済フォームの処理が完了すると発生するイベントです。生成されたリソースのIDと処理の詳細情報が含まれます。
Error (univapay:error)いずれかの段階で処理が失敗することで発生するイベントです。生成されたリソースのIDが含まれます。
Token created (univapay:token-created)トランザクショントークンが作成されたときに発生するイベントで、トークンの詳細情報を含みます。定期課金やリカーリング課金のように作成済のトランザクショントークンを利用して決済をする場合は発生しません。
Charge created (univapay:charge-created)課金が作成されたときに発生するイベントで、課金の詳細情報が含まれています。成功したかどうかに関わらず発生します。
Subscription created (univapay:subscription-created)定期課金が作成されたときに発生するイベントで、定期課金の詳細情報が含まれています。成功したかどうかに関わらず発生します。
Validation error (univapay:validation-error)このイベントには各フィールドにエラーがある場合に発生します。エラーがない場合、または各フィールドがまだ選択されていない場合、オブジェクトにはオブジェクトは空白になります。
3DS Start
(univapay:three-ds-authorization)
3-Dセキュア認証が開始されたことで発生するイベントです。
その他の情報は含みません。
3DS Open
(univapay:three-ds-authorization-modal-opened)
3-Dセキュア認証を実行する際、フォーム上にポップアップが表示されることで発生するイベントです。
その他の情報は含みません。
3DS Success
(univapay:three-ds-authorization-success)
3-Dセキュア認証が成功すると発生するイベントです。
対象のリソースのIDと処理の詳細情報が含まれます。
決済の成功を通知するイベントではありません。
3DS Failed
(univapay:three-ds-authorization-failure)
3-Dセキュア認証が失敗することで発生するイベントです。
対象のリソースのIDと処理の詳細情報が含まれます。

コールバックのサンプル

<script>
    window.addEventListener("univapay:success", (e) => { console.info("Success event", e) }, false);
    window.addEventListener("univapay:token-created", (e) => { console.info("Token event", e) }, false);
    window.addEventListener("univapay:charge-created", (e) => { console.info("Charge event", e) }, false);
    window.addEventListener("univapay:subscription-created", (e) => { console.info("Subscription event", e) }, false);
    window.addEventListener("univapay:validation-error", (e) => { console.error("Validation error event", e) }, false);
</script>
Share this Doc

設置 – (HTML/JavaScript)

Or copy link

Clipboard Icon
CONTENTS

© All Rights Reserved by UNIVA Paycast Limited.