Paidy Checkout
主要なPCブラウザやモバイル端末の場合であれば例外なく、Paidy Checkoutを利用して決済プロセスを安全かつスムーズに進めることができます。コンシューマーは数回クリックするだけで、手間をかけずに素早く支払いを行うことができます。Paidy Checkoutは既存の支払いページに組み込んで使用するため、セッション管理やリダイレクトに手間がかかったり、コンシューマーが支払いページを途中で離脱してしまうリスクもありません。
Paidy Checkoutの流れ
Paidy Checkoutは大きく別けて次の2つの要素で構成されています。
- Checkout JS: 決済を開始する、あるいはトークンを作成するために必要なデータをペイディに送るJavaScriptライブラリ。
- Checkout app: マーチャントのウェブサイトに表示される「Checkoutアプリケーション」。コンシューマーはCheckoutアプリケーションに従って決済プロセスを進め、必要な情報を入力します。
- コンシューマーが決済方法としてPaidy Checkoutを選択すると、クライアント側のページでCheckout JSスクリプトにデータが渡され、Checkoutアプリケーションが立ち上がります。
- Checkoutアプリケーション内でコンシューマーが携帯電話番号とメールアドレスを入力すると、このデータがペイディに送信されます。
- SMS経由でコンシューマーのもとに4桁の認証コードが届きます。
- コンシューマーはCheckoutアプリケーションに従って決済プロセスを進め、必要な情報を入力します。アプリケーションがコンシューマーに追加の情報を求めることがあります(ペイディではコンシューマーが複数の決済オプションを選択できるようになっており、その選択内容によってはコンシューマーが追加の情報を求められます)。
- ペイディがリクエストを処理し、マーチャントが準備したJavaScriptのコールバック関数を実行してクライアント側のウェブページに結果を返します。
- このPayment IDあるいはトークンIDをマーチャントのバックエンドシステムに保存します。このIDは非常に重要なものです。
- Paidy Checkoutは処理結果をクライアント側のウェブページに返します。そのため、マーチャントのバックエンドシステムで直接データを受け取りたい場合はWebhookを実装する必要があります。 Webhookの実装は必須ではありませんが、強く推奨されます。
- コンシューマーへの通知メールとSMSが届きます。
新たに作成されたのがトークンであれば、そのトークンを使用する決済をAPI経由で開始できます。通常の決済を開始したのであれば、API経由でその決済のCaptureや管理を行うことができます。
安全な通信
ネットワーク通信を暗号化し、インターネット上に存在するウェブサイトが本物であることを確認するために業界で標準的に採用されているプロトコルが、TLSです。Paidy CheckoutはTLSのバージョン1.2以降をサポートしています。
決済用にPaidy Checkoutを導入
通常の決済やトークンを作成する際はPaidy Checkoutを利用します。 通常の決済用にPaidy Checkoutを導入するには:
支払いページのテンプレートを更新する
日本語の文字をJSON形式で送信する際、意図しない文字(?や□)に文字化けすることがあります。送信時の文字化けを避け、テキストがペイディのユーザーインターフェイスに正しく表示されるよう、送信前にテキストがUTF-8でエンコードされていることを必ず確認するようにしてください。
ステップ1: Checkout JSスクリプトを支払いページのテンプレートに埋め込みます。 例:
<script type="text/javascript" src="https://apps.paidy.com/"></script>
ステップ2: マーチャントダッシュボードにログインして公開鍵を控えておきます。テストや運用時に使用する鍵はマーチャントダッシュボードにまとめてリストアップされています。間違った公開鍵を選ばないようご注意ください。
ステップ3: 支払いページのテンプレートにマーチャント固有の設定を施します。
-
パラメーター
説明
-
api_key
string
必須
ペイディと通信を行う際はこの公開鍵でマーチャントのアカウントが識別されるため、この属性が必ず必要になります。
-
logo_url
string
必須ではありません
Checkoutアプリケーションのヘッダー部分に表示できるカスタムロゴのURL。
-
closed
function
必須ではありません
Checkoutアプリケーションの終了時に呼び出されるコールバック関数。 ここではコールバックとしてAuthorizeの結果(成功・失敗、あるいはチェックアウトのプロセスが完了する前にコンシューマーがPaidy Checkoutを終了)が返されます。 決済の場合、コールバックとして必ずAuthorizeの結果(成功・失敗、あるいはチェックアウトのプロセスが完了する前にコンシューマーがPaidy Checkoutを終了)が返されます。コールバック関数の利用は必須ではありませんが、実装しておくことが推奨されます。
-
metadata
object
必須ではありません
マーチャントは自分で定義した決済に関する補足的なデータをこのフィールドに保存できます。このフィールドにはキーと値のセットを20件まで追加できます。 metadataフィールドはマーチャント設定でもペイロードデータ内でも設定できます。この両方で設定した場合、ペイロードデータで指定している値によってマーチャント設定の値が上書きされますので、ご注意ください。
ステップ4: 注文データをCheckout JSスクリプトに渡します。
-
パラメーター
説明
-
amount
double
必須
税、送料を含み、値引きの対象であればさらにそれを適用した後の決済総額。
-
currency
string
必須
決済で使用する通貨を示す、ISO4217通貨コードに準じた値(初期値はJPY)。
-
store_name
string
必須ではありません
Checkoutアプリケーションのヘッダー部分、MyPaidy、マーチャントダッシュボードに表示される店舗名。
-
buyer
object
必須
購入者の詳細情報を含むbuyerオブジェクト。
-
buyer_data
object
必須
コンシューマーがマーチャントの店舗で行った購入の履歴情報を含むbuyer_dataオブジェクト。
-
order
object
必須
購入対象の商品の詳細情報を含むorderオブジェクト。
-
shipping_address
object
必須
商品の配送先となる住所を含むshipping_addressオブジェクト。 必ず、都道府県から部屋番号までを含めて、住所の全体を送信するようにしてください。 住所の全体を提供しなければ、リクエストが失敗するおそれがあります。
コンシューマーの配送先住所が複数ある場合は、buyer_dataオブジェクトのadditional_shipping_addresses配列で残りの住所を指定します。 -
description
string
必須ではありません
注文の概要。
-
metadata
object
必須ではありません
マーチャントは自分で定義した決済に関する補足的なデータをこのフィールドに保存できます。このフィールドにはキーと値のセットを20件まで追加できます。metadataフィールドはマーチャント設定でもペイロードデータ内でも設定できます。この両方で設定した場合、ペイロードデータで指定している値によってマーチャント設定の値が上書きされますので、ご注意ください。
Buyer オブジェクト
-
パラメーター
説明
-
email
string
必須ではありません
コンシューマーのメールアドレス。
-
name1
string
必須
コンシューマーの氏名(漢字表記)。 姓と名をスペースで区切る必要があります(例:山田 太郎)。 スペースは半角(Unicode U+0020)でも全角(U+3000)でも構いません。
-
name2
string
必須ではありません
コンシューマーの氏名(カタカナ表記)。 姓と名をスペースで区切る必要があります(例:ヤマダ タロウ)。 スペースは半角(Unicode U+0020)でも全角(U+3000)でも構いません。
-
phone
string
必須ではありません
コンシューマーの電話番号(例:09011112222)。コンシューマーがテキストメッセージを受信できる日本の携帯電番号です。
-
dob
string
必須ではありません
コンシューマーの生年月日(提供された場合のみ)。YYYY-MM-DD形式。
Buyer data オブジェクト:
-
パラメーター
説明
-
user_id
string
必須ではありません
マーチャントのオンラインストアにおける、コンシューマーのユーザーID。
-
age
integer
必須
コンシューマーが店舗でアカウントを作成してから経過した日数。
ageが不明であればこのフィールドを省略できますが、その場合はaccount_registration_dateをペイロードに含めて送信してください。 -
age_platform
integer
必須ではありません
コンシューマーが、加盟店サービスが紐づくプラットフォームサービスのアカウントを作成してから経過した日数。
-
account_registration
_datestring
必須ではありません
コンシューマーがアカウントを登録した日付。フィールドの書式はYYYY-MM-DDです。
account_registration_dateが不明であればこのフィールドを省略できますが、その場合はageをペイロードに含めて送信してください。 -
days_since_first
_transactioninteger
optional
コンシューマーによるトランザクションが初めて発生した時から経過した日数。キャンセル、否決、返金された取引はこれに含まれません。Paidy決済は除外します。
-
ltv
double
必須
顧客の生涯価値。 コンシューマーが現在までに行った注文の総額(JPY)です。キャンセル、否決、返金された取引はこれに含まれません。ペイディも対象外です。
-
order_count
integer
必須
コンシューマーがマーチャントの店舗でアカウントを作成してから現在までに行った注文の数。キャンセル、否決、返金された取引はこれに含まれません。ペイディも対象外です。
-
last_order_amount
double
必須
最後に行った注文の金額(JPY)。キャンセル、否決、返金された取引はこれに含まれません。Paidy決済は除外します。
-
last_order_at
integer
必須
最後に注文を行ってから経過した日数。キャンセル、否決、返金された取引はこれに含まれません。Paidy決済は除外します。
last_order_atが不明であればこのフィールドを省略できますが、その場合はlast_order_dateをペイロードに含めて送信してください。 -
last_order_date
string
必須ではありません
コンシューマーによる直近の購入日。キャンセル、否決、返金された取引はこれに含まれません。Paidy決済は除外します。フィールドの書式はYYYY-MM-DDです。
last_order_dateが不明であればこのフィールドを省略できますが、その場合はlast_order_atをペイロードに含めて送信してください。 -
order_amount
_last3monthsinteger
必須ではありません
コンシューマーが過去3か月間に支払った金額。キャンセル、否決、返金された取引はこれに含まれません。ペイディも対象外です。
-
order_count
_last3monthsinteger
必須ではありません
コンシューマーが過去3か月間に行った注文の数。キャンセル、否決、返金された取引はこれに含まれません。ペイディも対象外です。
-
additional_shipping
_addressesarray
必須ではありません
コンシューマーの配送先住所が複数ある場合は、それぞれの配送先住所をオブジェクトとして、additional_shipping_addresses配列に格納します。
各オブジェクトで指定するフィールドは、line1、line2、city、state、zipです(各フィールドの詳細については、配送先オブジェクトの項目を参照してください)。 -
billing_address
object
必須ではありません
コンシューマーの請求先住所。 このオブジェクトで指定するフィールドは、line1、line2、city、state、zipです(各フィールドの詳細については、配送先オブジェクトの項目を参照してください)。
-
delivery_locn_type
string
必須ではありません
商品を受け取る場所の種類。次のいずれかをフィールドの値として設定します。
「home」:自宅受取
「office」:職場受取
「shop」:店頭受取
「combini」:コンビニ受取
「locker」:宅配ロッカー受取
「post_office」:郵便局留
「delivery_center」:営業所止め
「forwarding_shipment_service」:転送サービスを利用して受取
「gift」:ギフトとして送付
「not_primary_home」:ショップに登録された本人住所とは異なる住所で受取 -
gender
string
必須ではありません
コンシューマーの性別。 例:「Male」、「Female」
-
subscription_counter
integer
必須ではありません
定期購入の場合に、(ペイディも含めた)決済が行われた回数を示すカウンター。初回は「1」を設定します。なお、決済がキャンセル、返金された場合は、カウントしないでください。
-
previous_payment
_methodsobject
必須ではありません
credit_card_used、cash_on_delivery_used、convenience_store_prepayment_used、 carrier_payment_used、bank_transfer_used、rakuten_pay_used、 line_pay_used、amazon_pay_used、np_postpay_used、other_postpay_usedフィールドを含むオブジェクト。
いずれも、Boolean型のフィールドです。 利用したことがある決済方法の値にはtrueを、利用したことがない決済方法の値にはfalseを指定します。マーチャントの店舗で利用できない決済方法については、フィールドを省略するか、nullを指定できます。 -
number_of_points
integer
必須ではありません
コンシューマーが貯めたポイント数。今回の利用ポイント数を引く前の保有ポイント数を設定してください。
-
order_item_categories
array
必須ではありません
購入する各商品のカテゴリー。複数のカテゴリーをコンマ区切りで指定します。
Order オブジェクト:
-
パラメーター
説明
-
items
object
必須
Itemsオブジェクトの配列。このオブジェクトを使用し、値引き額を示す負の値をunit_priceにセットした状態で「discount order item(値引き項目)」を作成することでも、コンシューマーの注文商品を値引きすることができます。
-
order_ref
string
必須ではありません
マーチャントが割り当てる注文IDまたはカートID。order_refフィールドは必須項目ではありません。また、一意の値を指定する必要もありません。
-
shipping
double
必須ではありません
注文にかかる配送料の総額。
-
tax
double
必須ではありません
注文にかかる消費税の総額。
Items オブジェクト:
-
パラメーター
説明
-
id
string
必須ではありません
注文商品の商品ID。任意のフィールドであり、送信後はマーチャントダッシュボードとMyPaidyの両方に表示されます。
-
quantity
integer
必須
注文商品の数。
-
title
string
必須ではありません
注文商品(または値引き/クーポン)の名称。任意のフィールドですが、ペイロードに含めて送信することが推奨されます。送信後はマーチャントダッシュボードとMyPaidyの両方に表示され、注文商品を識別できるようになります。送信しない場合、注文商品の数量と単価以外は表示されません。
-
unit_price
double
必須
注文商品の単価。注文商品(order item)に値引きやクーポンを指定する場合、unit_priceに必ず負の値をセットし、注文の決済総額からその金額が差し引かれるようにしてください。
-
description
string
必須ではありません
注文商品の説明。MyPaidyやマーチャントダッシュボードには表示されないフィールドですので、ご注意ください。
Shipping address オブジェクト:
-
パラメーター
説明
-
line1
string
必須ではありません
建物名と部屋番号(国内の住所の場合)。
-
line2
string
必須ではありません
番地(国内の住所の場合)。
-
city
string
必須ではありません
市区町村。
-
state
string
必須ではありません
都道府県。
-
zip
string
必須
郵便番号(NNN-NNNN形式)。
注意 これは必須フィールドです。 addressオブジェクトに含まれる他のフィールドはいずれも必須フィールドではありませんが、zipフィールドとともに他のフィールドを1つ以上指定する必要があります。 配送先住所のフィールドを2つ提供しなければ、リクエストが失敗します。
また、住所を2つのフィールド(zipフィールドともう1つのフィールド)に分ける場合、配送先住所の全体を2つ目のフィールドで提供する必要があります。そうしなければ、リクエストが失敗するおそれがありますので、ご注意ください。
必ず、県から部屋番号までを含めて、配送先住所の全体を送信するようにしてください。この情報に漏れがあると、リクエストが失敗するおそれがあります。 また、住所を次のように複数のフィールドの形式で、つまり、住所をフィールド毎に分けて送信することが推奨されます。
Paidy Checkoutの例
<html>
<body>
<button id="paidy-checkout-button" onclick="paidyPay()">ペイディでお支払い</button>
<script type="text/javascript" src="https://apps.paidy.com/"></script>
<script type="text/javascript">
var config = {
"api_key": "pk_0000_000000000000000",
"logo_url": "http://www.paidy.com/images/logo.png",
"closed": function(callbackData) {
/*
Data returned in the callback:
callbackData.id,
callbackData.amount,
callbackData.currency,
callbackData.created_at,
callbackData.status
*/
}
};
var paidyHandler = Paidy.configure(config);
function paidyPay() {
var payload = {
"amount": 10000,
"currency" : "JPY",
"store_name": "Paidy sample store",
"buyer": {
"email": "successful.payment@paidy.com",
"name1": "山田 太郎",
"name2": "ヤマダ タロウ",
"phone" : "08000000001",
"dob": "1990-10-25"
},
"buyer_data": {
"user_id": "yamada_taro",
"age": 29,
"age_platform": 50,
"days_since_first_transaction": 29,
"ltv": 250000,
"order_count": 1000,
"last_order_amount": 20000,
"last_order_at": 20,
"order_amount_last3months": 15000,
"order_count__last3months": 5,
"additional_shipping_addresses": [{
"line1": "AZABUビル 2F",
"line2": "東麻布2-10-1",
"city": "港区",
"state": "東京都",
"zip": "106-0023"
}],
"billing_address": {
"line1": "AXISビル 10F",
"line2": "六本木4-22-1",
"city": "港区",
"state": "東京都",
"zip": "106-2004"
},
"delivery_locn_type": "office",
"gender": "Male",
"subscription_counter": 2,
"previous_payment_methods": {
"credit_card_used": false,
"cash_on_delivery_used": true,
"convenience_store_prepayment_used": true,
"carrier_payment_used": false,
"bank_transfer_used": false,
"rakuten_pay_used": true,
"line_pay_used": false,
"amazon_pay_used": false,
"np_postpay_used": false,
"other_postpay_used": false
},
"number_of_points": 8023,
"order_item_categories": ["sunglasses", "contact lenses"]
},
"order": {
"items": [
{
"id":"PDI001",
"quantity":1,
"title":"スニーカー",
"unit_price":10000,
"description":" "
}
],
"order_ref": "88e021674",
"shipping": 0,
"tax": 0
},
"shipping_address": {
"line1": "AXISビル 10F",
"line2": "六本木4-22-1",
"city": "港区",
"state": "東京都",
"zip": "106-2004"
},
"description" : "Sample store"
};
paidyHandler.launch(payload);
};
</script>
</body>
</html>
レスポンス
処理完了後、マーチャントが準備したJavaScriptのコールバック関数が実行されます。Authorizeのリクエストが成功した場合でも、失敗した場合でも、コールバックとして以下のフィールドがすべて返されます。
-
パラメーター
説明
-
amount
double
注文総額。
-
currency
string
決済で使用する通貨を示す、ISO4217通貨コードに準じた値(初期値はJPY)。
-
created_at
string
決済データが作成された日時(ISO 8601のフォーマットに準じるUTC)。
-
id
string
新規決済データの一意なID。 このPayment IDは必ず「pay_」で始まります。
-
status
string
Authorizeのステータス。Authorizeが成功した場合は「AUTHORIZED」、失敗した場合は「REJECTED」になります。
チェックアウトのプロセスが完了する前にコンシューマーがPaidy Checkoutを終了した場合、コールバックとしてstatusフィールド(値は「closed」)のみが返されます。
決済の状態を示すCLOSEDと混同しないようにしてください。マーチャントダッシュボードで決済の状態が「CLOSED」と表示されている場合、正しく完了した決済、あるいはマーチャントがキャンセルした決済を示します。一方、コールバックとして返される「closed」は、チェックアウトのプロセスが完了する前にコンシューマーがPaidy Checkoutを終了した、つまりペイディが存在しないことを示します。
決済データの検証
Paidy Checkoutが作成した決済データは、API用の秘密鍵を使ってマーチャント側のバックエンドシステムからリクエストを送信することで検証していただく必要があります。これはセキュリティを確保するために必要な作業ですので、省略することはできません。
決済のAuthorizeを行う際、マーチャントが準備したJavaScriptのコールバック関数をPaidy Checkoutが実行し、Payment IDが返されます。このPayment IDを保存する前にデータを検証し、フロントエンドのブラウザからペイディに送信されたデータが途中で改ざんされていないことを確かめておく必要があります。 この検証を行うには、マーチャント側のバックエンドシステムからAPI用の秘密鍵を使ってGET /payments/{id}にリクエストを送信します。
必要な検証の流れ
- JavaScriptのコールバック関数からバックエンドシステムにPayment IDを送信します。
- バックエンドシステムから
/payments/{id}
エンドポイント({id}の部分はPayment ID)にGETリクエストを送信します。このリクエストの処理が成功すると決済オブジェクト全体が返ってきます。 - amountフィールドの値を探し、Authorizeリクエストの際に送信されたものと同じ値であることを確認します。
- 値が同じであれば決済データは有効ですので、安心して決済オブジェクトをデータベースに保存できます。
Checkoutアプリケーションのカスタマイズ
Checkoutアプリケーションのヘッダー部分に表示されるペイディのlogo_urlはマーチャント独自のものに変更できます。 マーチャント独自のロゴを表示する方法
- まずは支払いページのテンプレートにて、マーチャント設定の「logo_url」を変更します(ステップ3を参照)。
- 次に、Paidy Checkoutを導入するページと同じドメイン内に画像ファイルを配置していることを確認します。
最適画像サイズは184ピクセル x 184ピクセル、推奨画像形式は.png、.jpg、.gifです。
トークン用にPaidy Checkoutを導入
通常の決済やトークンを作成する際はPaidy Checkoutを利用します。 トークン用にPaidy Checkoutを導入するには:
- 支払いページのテンプレートを更新する
- Checkoutアプリケーションを構成する (任意のステップ)
支払いページのテンプレートを更新する
日本語の文字をJSON形式で送信する際、意図しない文字(?や□)に文字化けすることがあります。送信時の文字化けを避け、テキストがペイディのユーザーインターフェイスに正しく表示されるよう、送信前にテキストがUTF-8でエンコードされていることを必ず確認するようにしてください。
ステップ1: Checkout JSスクリプトを支払いページのテンプレートに埋め込みます。 例:
<script type="text/javascript" src="https://apps.paidy.com/"></script>
ステップ2: マーチャントダッシュボードにログインして公開鍵を控えておきます。テストや運用時に使用する鍵はマーチャントダッシュボードにまとめてリストアップされています。間違った公開鍵を選ばないようご注意ください。
ステップ3: 支払いページのテンプレートにマーチャント固有の設定を施します。
-
パラメーター
説明
-
api_key
string
必須
ペイディと通信を行う際はこの公開鍵でマーチャントのアカウントが識別されるため、この属性が必ず必要になります。
-
logo_url
string
必須ではありません
Checkoutアプリケーションのヘッダー部分に表示できるカスタムロゴのURL。
-
on_close
function
必須ではありません
Checkoutアプリケーションの終了時に呼び出されるコールバック関数。トークンの発行が成功した場合、あるいはチェックアウトのプロセスが完了する前にコンシューマーがPaidy Checkoutを終了した場合はコールバック関数on_closeが実行されます。
本コールバック関数の利用は必須ではありませんが、実装することが強く推奨されます。 -
closed
function
必須ではありません
Checkoutアプリケーションの終了時に呼び出されるコールバック関数。トークンの発行に成功した場合のみコールバック関数closedが実行されます。
そのため本関数ではなく、トークンの発行時およびCheckoutアプリケーションが閉じられた時にも実行されるコールバック関数on_closeの利用を推奨します。 -
metadata
object
必須ではありません
マーチャントは自分で定義した決済に関する補足的なデータをこのフィールドに保存できます。このフィールドにはキーと値のセットを20件まで追加できます。 metadataフィールドはマーチャント設定でもペイロードデータ内でも設定できます。この両方で設定した場合、ペイロードデータで指定している値によってマーチャント設定の値が上書きされますので、ご注意ください。
-
token
object
必須ではありません
トークン関連の設定を行うフィールドが含まれるオブジェクトです。このオブジェクトが存在すれば、トークンを使用する場合の処理手順に従ってリクエストが処理されます。存在しない場合は通常の決済フローに従ってリクエストが処理されます。
Tokenオブジェクト:
-
パラメーター
説明
-
wallet_id
string
必須ではありません
ウォレットIDです。傘下に複数のマーチャントが存在する大規模なマーチャント、あるいは他のマーチャントの代理となる決済サービスプロバイダーの場合は、それぞれのマーチャントをこのwallet_idを使用して識別できます。初期値は「default」に設定されていますが、このフィールドの値を空にした状態で送信しないでください。値を設定するか、tokenオブジェクトにこのフィールドを含めずに送信を行う必要があります。
-
type
string
必須
トークンの種類です。必ず「recurring」を指定してください。
-
description
string
必須ではありません
マーチャントが定義する、トークンの説明。
ステップ4: 注文データをCheckout JSスクリプトに渡します。
-
パラメーター
説明
-
store_name
string
必須ではありません
Checkoutアプリケーションのヘッダー部分、MyPaidy、マーチャントダッシュボードに表示される店舗名。
-
buyer
object
必須
コンシューマーの氏名、メールアドレス、携帯電話番号を含むbuyerオブジェクト。
-
description
string
必須ではありません
注文の概要。
-
metadata
object
必須ではありません
マーチャントは自分で定義した決済に関する補足的なデータをこのフィールドに保存できます。このフィールドにはキーと値のセットを20件まで追加できます。metadataフィールドはマーチャント設定でもペイロードデータ内でも設定できます。この両方で設定した場合、ペイロードデータで指定している値によってマーチャント設定の値が上書きされますので、ご注意ください。
Buyer object:
-
パラメーター
説明
-
email
string
必須ではありません
コンシューマーのメールアドレス。
-
name1
string
必須
コンシューマーの氏名(漢字表記)。 姓と名をスペースで区切る必要があります(例:山田 太郎)。 スペースは半角(Unicode U+0020)でも全角(U+3000)でも構いません。
-
name2
string
必須ではありません
コンシューマーの氏名(カタカナ表記)。 姓と名をスペースで区切る必要があります(例:ヤマダ タロウ)。 スペースは半角(Unicode U+0020)でも全角(U+3000)でも構いません。
-
phone
string
必須ではありません
コンシューマーの電話番号(例:09011112222)。コンシューマーがテキストメッセージを受信できる日本の携帯電番号です。
Paidy Checkoutの例
<html>
<body>
<button id="paidy-checkout-button" onclick="paidyPay()">Paidyでお支払い</button>
<script type="text/javascript" src="https://apps.paidy.com/"></script>
<script type="text/javascript">
var config = {
"api_key": "pk_0000_000000000000000",
"logo_url": "http://www.paidy.com/images/logo.png",
"on_close": function(callbackData) {
/*
Data returned in the callback:
callbackData.id,
callbackData.created_at,
callbackData.status
*/
},
"token": {
"wallet_id": "default",
"type": "recurring",
}
};
var paidyHandler = Paidy.configure(config);
function paidyPay() {
var payload = {
"store_name": "Paidy sample store",
"buyer": {
"email": "successful.payment@paidy.com",
"name1": "山田 太郎",
"name2": "ヤマダ タロウ",
"phone" : "08000000001"
}
};
paidyHandler.launch(payload);
};
</script>
</body>
</html>
レスポンス
処理完了後、マーチャントが準備したJavaScriptのコールバック関数が実行されます。コールバック関数では以下のフィールドを返します。
-
パラメーター
説明
-
id
string
ペイディが生成する、「tok_」で始まるトークンID。
-
created_at
string
トークンが作成された日時(ISO 8601のフォーマットに準じるUTC)。
-
status
string
トークンの発行のステータス。トークンの発行が成功した場合は「ACTIVE」、チェックアウトのプロセスが完了する前にコンシューマーがPaidy Checkoutを終了した場合は「CLOSED」になります。なお「CLOSED」の場合、statusフィールドのみを返します。
Checkoutアプリケーションのカスタマイズ
Checkoutアプリケーションのヘッダー部分に表示されるペイディのlogo_urlはマーチャント独自のものに変更できます。 マーチャント独自のロゴを表示する方法
- まずは支払いページのテンプレートにて、マーチャント設定の「logo_url」を変更します(ステップ3を参照)。
- 次に、Paidy Checkoutを導入するページと同じドメイン内に画像ファイルを配置していることを確認します。
最適画像サイズは184ピクセル x 184ピクセル、推奨画像形式は.png、.jpg、.gifです。
ブラウザ対応状況
主要なブラウザについてはすべて、複数のバージョンで動作確認を行いつつ開発を進めていますが、すでにセキュリティ関連のアップデートが終了しているブラウザはサポート対象外にしています。今後のサポート改善のためにも、Paidy Checkoutをご利用中にいずれかのブラウザで問題が発生した場合は、お手数ですが弊社までご連絡いただけましたら幸いです。
-
ウェブブラウザおよびそのバージョン
-
推奨
Microsoft Edge、Chrome、Safariおよび Firefoxの最新バージョン。
-
サポート対象
Microsoft Edge、ChromeおよびSafari―すべてのプラットフォームのものを、バージョンリリース後から3年間サポートします。
Firefox―デスクトップ版をバージョンリリース後から3年間サポートします。Android版とiOS版のFirefox(最新バージョン)については、バグレポートに基づいて対応を取ってはいますが、隅々まで動作確認を行っているわけではありません。
複数のモバイルプラットフォームについても動作確認を行っています。
-
プラットフォームのバージョン
-
推奨
iOS 12以降
Android 7以降 -
サポート対象
iOS 12以降
Android 7以降
トラブルシューティング
-
パス/エラーの表示
主な原因(解決策)
-
ERROR
Paidy configuration JSON is missing required parameters
構成オブジェクトが存在しない、あるいは不完全。Paidy.configure()に渡す構成オブジェクトのフォーマットを確認し、必要なキーと値がすべて揃っているかどうかチェックします。
-
/payments
503 Service unavailable or connection refused
決済サービスが稼働していない、またはサーバーやポートの設定が不適切。設定が正しいかどうか確認します。
-
/payments
401 Unauthorized
公開鍵が間違っている。マーチャントダッシュボードにログインして公開鍵の値を確認します。次に、マーチャント設定で適切な公開鍵を使用していることを確認します。