リダイレクト付きの電子財布

PayPal、Klarna、Skrillなどのリダイレクト付きの電子財布は、支払いを承認および確認するためにユーザーを決済システムのウェブサイトにリダイレクトし、その後、販売者のウェブサイトに戻ります。この方法では、販売者がユーザーの支払いデータにアクセスできないため、支払いの安全性が確保されます。

以下の説明では、PayPalを例にして、リダイレクトで電子財布経由の支払いを受け付けるヘッドレスチェックアウトの設定について説明します。

  1. PayPalの支払い後にユーザーがリダイレクトされる支払状況ページを作成します。例えば、https://example.com/return-page.htmlです。

  2. 支払状況を表示するには、決済UIののHTMLマークアップにpsdk-statusコンポーネントを追加します。

Copy
Full screen
Small screen
@if (showStatus) {
  <psdk-status></psdk-status>
}
  1. PayPalフォームを表示するページを作成します。例えば、https://example.com/form-page.htmlです。

  2. 決済方法IDとステータスページURLを指定して、決済UIを初期化します。

Copy
Full screen
Small screen
await headlessCheckout.form.init({
  paymentMethodId: 24, // PayPal payment ID
  returnUrl: 'https://example.com/return-page.html',
});
  1. PayPalでの決済を実行できるように、ユーザーを外部ページへリダイレクトするredirectイベントの処理を追加します。購入を完了すると、ユーザーは支払状況のページ(https://example.com/return-page.html)にリダイレクトされます。

Copy
Full screen
Small screen
headlessCheckout.form.onNextAction((nextAction) => {
  switch (nextAction.type) {
    case 'redirect':
      this.handleRedirectAction(nextAction);
  }
});

private handleRedirectAction(redirectAction: RedirectAction): void {
  const url = this.buildRedirectUrl(redirectAction);
  window.location.href = url; // redirect to PayPal page
}

private buildRedirectUrl(redirectAction: RedirectAction): string {
  const url = new URL(redirectAction.data.redirect.redirectUrl);
  const params = Object.entries(redirectAction.data.redirect.data);
  params.forEach((entry) => {
    const [key, value] = entry;
    url.searchParams.append(key, value);
  });
  return url.toString();
}
実装サンプル
詳細についてはGitHubのサンプルを参照してください。
この記事は役に立ちましたか?
ありがとうございます!
改善できることはありますか? メッセージ
申し訳ありません
この記事が参考にならなかった理由を説明してください。 メッセージ
ご意見ありがとうございました!
あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
最終更新日: 2025年3月5日

誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。

問題を報告する
当社は常にコンテンツを見直しています。お客様のご意見は改善に役立ちます。
フォローアップ用のメールをご提供してください
ご意見ありがとうございました!