決済ページの導入
決済専用のページ
サービス側で注文を作成し、お客様を決済ページへ案内。確認済みの決済結果を、元の注文に反映します。
オンライン決済を見る連携方法
決済ページ、ECプラットフォーム、API連携。今のビジネスに必要な方法から始められます。
決済連携の流れ
注文情報はバックエンドで管理。確認済みの決済結果に基づいて、商品発送や返金を進めます。
サーバーで管理する金額と通貨を使います。再試行、サポート、取引照合でも同じ注文番号を保持してください。
// Your server owns the payable amount.
const order = await orders.find(orderId);
const paymentContext = {
reference: order.reference,
amount: order.total,
currency: order.currency,
};
// Keep the same reference through checkout.
await orders.attachPaymentContext(
order.id, paymentContext
);サービス側の処理例です。実際のAPI仕様は、連携のご相談時にご確認ください。
連携仕様に沿って決済結果を検証します。同じ通知を繰り返し受けても安全に処理し、支払いの完了を確認してから発送・サービス提供を進めてください。
// Browser navigation is not payment proof.
const result = await verifyPaymentResult(
incomingNotification
);
await orders.transaction(async (tx) => {
if (await tx.hasProcessed(result.id)) return;
await tx.recordPaymentResult(result);
if (result.confirmedPaid) {
await tx.markPaid(result.orderReference);
}
});サービス側の処理例です。実際のAPI仕様は、連携のご相談時にご確認ください。
返金を依頼するシステムと結果の反映方法を決めます。元の取引番号を使い、サポートと経理が同じ記録を確認できるようにします。
// A refund remains linked to its payment.
const refundContext = {
orderReference: order.reference,
paymentReference: payment.reference,
amount: requestedRefund,
};
await refunds.recordRequest(refundContext);
// Update records after the result is verified.
await refunds.recordResult(verifiedResult);
await orders.syncRefundStatus(order.id);サービス側の処理例です。実際のAPI仕様は、連携のご相談時にご確認ください。
次の成長に向けて
海外展開のたびに決済を作り直す必要はありません。お客様やショップのプラットフォーム、成長計画に合わせて決済方法を広げられます。
同じ決済通知を再度受信しても、注文の更新は一度だけ行います。
確認済みの結果が届くまで、注文を決済待ちの状態に保ちます。
お客様がECサイトに戻ったら、注文情報と現在の決済状況を案内します。
返金を元の決済に紐づけ、注文情報にも最新の状況を反映します。
連携を始める前に
連携方法の選択や導入準備に役立つ情報をまとめました。
専用の決済ページにはホスト型決済、既存のECサイトにはプラットフォーム連携が選択肢になります。決済フローを細かく制御したい場合はAPI連携をご検討ください。注文の受付方法をお知らせいただければ、一緒に方法を確認します。
連携先から受け取った決済結果を確認した後に更新します。お客様がサイトに戻ったことだけでは、決済完了の確認にはなりません。
ECプラットフォームや開発環境、事業所在地、販売先の国、必要な決済方法、注文処理の流れをお知らせください。連携範囲とテスト手順を一緒に確認します。