リダイレクト付きの電子財布
PayPal、Klarna、Skrillなどのリダイレクト付きの電子財布は、支払いを承認および確認するためにユーザーを決済システムのウェブサイトにリダイレクトし、その後、販売者のウェブサイトに戻ります。この方法では、販売者がユーザーの支払いデータにアクセスできないため、支払いの安全性が確保されます。
以下の説明では、PayPalを例にして、リダイレクトで電子財布経由の支払いを受け付けるヘッドレスチェックアウトの設定について説明します。
PayPalの支払い後にユーザーがリダイレクトされる支払状況ページを作成します。例えば、
https://example.com/return-page.html
です。支払状況を表示するには、決済UIののHTMLマークアップに
psdk-status
コンポーネントを追加します。
例:
Copy
- html
@if (showStatus) {
<psdk-status></psdk-status>
}
PayPalフォームを表示するページを作成します。例えば、
https://example.com/form-page.html
です。決済方法IDとステータスページURLを指定して、決済UIを初期化します。
例:
Copy
- typescript
await headlessCheckout.form.init({
paymentMethodId: 24, // PayPal payment ID
returnUrl: 'https://example.com/return-page.html',
});
- PayPalでの決済を実行できるように、ユーザーを外部ページへリダイレクトする
redirect
イベントの処理を追加します。購入を完了すると、ユーザーは支払状況のページ(https://example.com/return-page.html
)にリダイレクトされます。
例:
Copy
- typescript
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();
}
この記事は役に立ちましたか?
ご意見ありがとうございました!
あなたのメッセージを確認し、体験を向上させるために利用させていただきます。誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。