Klarna による支払い方法を受け付ける
世界で普及している後払いの支払い方法である Klarna を受け付ける方法をご紹介します。
複雑な決済フローを処理し、Klarna 決済を受け付ける高度な導入には、Payment Element や Express Checkout Element などの Stripe Elements を使用できます。Payment Element は 40 種類以上の決済手段を受け付け、入力を検証し、エラーを処理します。Express Checkout Element には Klarna やその他の決済手段のワンクリック決済手段ボタンが用意されています。
QuickStart に従って、Web サイトにカスタム Stripe 決済フォームを埋め込む方法をご紹介します。
このガイドでは、Elements と Payment Intents API を使用する導入で Klarna 決済を処理するための推奨手順について説明します。
注
導入を開始する前に、決済手段設定を確認して、アカウントが Klarna に対応していることを確認してください。
決済手段を手動で一覧表示する
動的な決済手段の使用をお勧めします。この場合、Stripe は各顧客に最も関連性の高い決済手段を動的に表示してコンバージョンを最大化するロジックを処理します。決済手段を手動で一覧表示する場合は、PaymentIntent の作成時に payment_method_types リストで klarna
を指定します。
PaymentIntent を作成する
決済成功率を最大化し、不審請求の申請を減らすには、Klarna 決済のPaymentIntent を作成する際に次のパラメーターを渡します。
- shipping:
name
、address.
、line1 city
、country
、およびpostal_
の各フィールドが定義されていて、空でないことを確認します。code - line_items
- billing_details:
name
、address.
、line1 city
、country
、およびpostal_
の各フィールドが定義されていて、空でないことを確認します。code
client secret を取得する
PaymentIntent には、client secret が含まれています。これは、支払いプロセスを安全に完了するためにクライアント側で使用されます。client secret をクライアント側に渡す際は、いくつかの方法を使用できます。
Stripe に決済をする
このステップでは、Stripe.js を使用してクライアントで Klarna の支払いを完了します。
Stripe.js を設定する
顧客が Klarna での支払いをクリックするときは、Stripe.js を使用してその支払いを Stripe に送信することをお勧めします。Stripe.js は、支払いフローを構築するための Stripe の基本的な JavaScript ライブラリです。これにより、以下で説明するリダイレクトなどの複雑な処理が自動的に行われ、今後、組み込みを他の支払い方法にも簡単に拡張できます。Stripe.js スクリプトを HTML ファイルのヘッダーに追加することで、決済ページにこのスクリプトを含めます。
<head> <title>Checkout</title> <script src="https://js.stripe.com/basil/stripe.js"></script> </head>
決済ページで以下の JavaScript を使用して、Stripe.js のインスタンスを作成します。
// Set your publishable key: remember to change this to your live publishable key in production // See your keys here: https://dashboard.stripe.com/apikeys var stripe = Stripe(
);'pk_test_TYooMQauvdEDq54NiTphI7jx'
PaymentIntent オブジェクト全体をクライアントに送信するのではなく、その クライアントシークレット を使用します。これは、Stripe API リクエストを認証する API キーとは異なります。
クライアントシークレットは決済を確定できるため、慎重に取り扱う必要があります。記録したり、URL に埋め込んだり、当該の顧客以外に漏洩することがないようにしてください。
stripe.confirmKlarnaPayment を使用し、お客様のページからのリダイレクトを処理して決済を完了します。この機能に return_url を追加して、ユーザーが Klarna のウェブサイトまたはモバイルアプリで決済を完了した後に Stripe がユーザーをリダイレクトする場所を示します。
Klarna の決済ページで、顧客は自身の市場で提供されている決済オプションから選択します。概要ページの表で市場別の提供状況を確認してください。Klarna 決済ページのオプションを制限したり、事前選択したりすることはできません。この選択を消費者に任せることで、取引の機会が最大化されます。
// Redirects away from the client const {error} = await stripe.confirmKlarnaPayment( '{{PAYMENT_INTENT_CLIENT_SECRET}}',{ return_url: 'https://example.com/checkout/complete', } ); if (error) { // Inform the customer that there was an error. }
顧客が支払いを送信すると、Stripe は顧客を return_
にリダイレクトし、以下の URL クエリーパラメーターを含めます。返品ページでは、これらを使用して PaymentIntent のステータスを取得し、顧客に支払いステータスを表示できます。
return_
を指定する際に、返品ページで使用する独自のクエリパラメーターを追加することもできます。
パラメーター | 説明 |
---|---|
payment_ | PaymentIntent の一意の識別子。 |
payment_ | PaymentIntent オブジェクトの client secret。サブスクリプションの実装の場合、この client_secret は confirmation_ を通じて Invoice オブジェクトでも公開されます |
顧客が自社のサイトにリダイレクトされたら、payment_
を使用して PaymentIntent をクエリし、顧客に取引ステータスを表示できます。
顧客が選択した Klarna 決済オプションの詳細は、チャージ
時に payment_method_details プロパティで確認できます。使用可能な値は pay_
、pay_
、pay_
、pay_
の 4 種類です。これらのオプションの詳細については、Stripe の Klarna 概要ページをご覧ください。
Klarna の決済ページ各地域への適応に使用されるロケールは、payment_method_details プロパティでも確認できます。
{ "charges": { "data": [ { "payment_method_details": { "klarna": { "payment_method_category": "pay_in_installments", "preferred_locale": "en-US" }, "type": "klarna" }, "id": "src_16xhynE8WzK49JbAs9M21jaR", "object": "source", "amount": 1099, "client_secret": "src_client_secret_UfwvW2WHpZ0s3QEn9g5x7waU",
実装内容をテストする
下記では、現在対応している顧客の国のテストデータを特別に選択しています。サンドボックスでは、Klarna は指定されたメールアドレスに基づいて取引を承認または拒否します。
実働環境のテストのために、現地通貨の金額 3500
を使用して、融資以外のすべての Klarna 支払いオプションをテストできます。たとえば、イタリアでの「3 回払い」をテストする場合は、35.00 EUR の取引を使用できます。
2 段階認証
6 桁の数字であれば、2 段階認証コードとして有効です。999999
を使用すると、認証は失敗します。
返済方法
Klarna のフロー内では、以下のテスト値を使用し、さまざまな返済方法を試すことができます。
タイプ | 値 |
---|---|
口座引き落とし | DE11520513735120710131 |
銀行振込 | デモの銀行 |
クレジットカード |
|
デビットカード |
|
失敗した決済
Klarna は、取引を受け付けるか拒否するかを決定する際に複数の要因を考慮します (買い手が Klarna を使用している期間、顧客が返済する必要のある未払い額、現在の注文の金額など)。
顧客が後払いを選択すると、Klarna は取引を受け付ける前にリスク評価を行います。Klarna は、リスク評価の結果が良好でなかったり、取引金額が大きかったり、顧客に多額の未払いの負債があったりすると、取引を拒否することがあります。そのため、決済フローに card
などの他の支払いオプションを提示することをお勧めします。このような場合、PaymentMethod は解除され、PaymentIntenオブジェクトのステータスは自動的に requires_
に変わります。
顧客は、Klarna のサイトにリダイレクトされてから 48 時間以内に決済を完了する必要があります。48 時間経過しても対応しなかった場合、PaymentMethod の関連付けが解除され、PaymentIntent オブジェクトのステータスは自動的に requires_
から requires_
に移行します。
このようなケースでは、決済フローに表示される別の支払いオプションで再試行するように顧客に通知します。
Klarna のレート制限
Klarna への API リクエストは、Stripe の API 全体のレート制限を超える追加のレート制限の対象となります。これらの制限は、実行する API リクエストのシェイプによって異なる場合があります。一般に、1 分間に約 360 回を超えるリクエストを行うと、HTTP ステータスコード 400
または 402
のレスポンスの形式でレート制限が発生することがあります。使用量がこれらのレベルに達することが懸念される場合は、詳細についてお問い合わせください。これらの制限はケースバイケースで Klarna により引き上げられる可能性があります。
エラーメッセージ
Klarna 支払いが失敗すると、通常、以下のエラーコードのいずれかが返されます。これらのコードは、last_payment_error API オブジェクトに表示されます。
注意
2023-08-16
API バージョンより前は、すべての Klarna エラーが payment_intent_authentication_failure として報告されていました。API バージョンが最新であることを確認して、以下のエラー詳細をご覧ください。
エラーコード | 説明 |
---|---|
payment_method_customer_decline | 顧客が Klarna のページで購入をキャンセルしました |
payment_method_provider_decline | Klarna が顧客の支払いを拒否しました |
payment_intent_payment_attempt_expired | 顧客が Klarna のページで購入を完了しないまま、支払いセッションの有効期限が切れました |
payment_method_not_available | Klarna を使用しようとしたときに予期しないエラーが発生しました |
オプションのカスタマイズ
オプションで、Klarna 決済フロー(売上の承認とキャプチャーの分離など)と顧客とのやり取り(リダイレクトの処理など)に複数の異なるカスタマイズを実装できます。
承認とキャプチャーの分離
Klarna はオーソリとキャプチャの分離に対応しています。支払いから顧客への商品の配送までに遅延が生じた場合、まず支払いをオーソリし、後でキャプチャーします。キャプチャーされた時点で、Klarna は顧客に明細書を送り、必要となる以降の支払いの期日を作成します。オーソリされた Klarna の支払いは、オーソリから 28 日以内にキャプチャーする必要があります 。キャンセルされない場合、オーソリは自動的にキャンセルされ、支払いをキャプチャーできなくなります。
オーソリのみ行うように Stripe に指示する
オーソリとキャプチャーを分離することを指定するには、PaymentIntent の作成時に、capture_method を
manual
に設定します。このパラメーターは、顧客の Klarna アカウントの金額のみをオーソリするよう Stripe に指示します。売上をキャプチャーする
承認が完了すると、PaymentIntent の ステータスは
requires_
に移行します。承認済みの売上をキャプチャーするには、PaymentIntent の キャプチャーリクエストを作成します。デフォルトでは承認済みの総額がキャプチャーされます。これを超える金額をキャプチャーすることはできませんが、これより少ない金額をキャプチャーすることは可能です。capture 任意オーソリをキャンセルする
Klarna は、Klarna 内での顧客の総計購買力に対して、承認された決済件数を計算します。このため、フルフィルメントを行えない承認済みの決済 (商品を配送できないなど) は、それが明らかになり次第、早急にキャンセルする必要があります。
Klarna リダイレクトを手動で処理する
クライアント側で confirmKlarnaPayment
を使用して Klarna のリダイレクトおよび支払いを処理するには、Stripe.js を使用することをお勧めします。Stripe.js を使用すると、他の決済手段にも対応するように実装を拡張できます。ただし、以下の手順に従って、お客様のサーバーに顧客を手動でリダイレクトすることもできます。
タイプが
klarna
の PaymentIntent (支払いインテント) を作成し、確定します。return_
フィールドに顧客の支払い後のリダイレクト URL を指定する必要があります。この URL には固有のクエリパラメーターを指定でき、リダイレクトフローの最終的な URL にはその値が含まれます。url 作成される
PaymentIntent
のステータスはrequires_
であり、action next_
のタイプはaction redirect_
です。to_ url { "status": "requires_action", "next_action": { "type": "redirect_to_url", "redirect_to_url": { "url": "https://hooks.stripe.com/...", "return_url": "https://example.com/checkout/complete" } }, "id": "pi_1G1sgdKi6xqXeNtkldRRE6HT", "object": "payment_intent", "amount": 1099,
next_
プロパティで指定した URL に顧客をリダイレクトします。ここに示すコード例はおおまかなものであり、リダイレクト方法は、お客様の Web フレームワークによって異なることがあります。action. redirect_ to_ url. url
決済プロセスを完了した顧客は、ステップ 1 で設定した return_
に送られます。payment_
と payment_
の URL クエリパラメーターが含まれています。return_
にクエリパラメーターがすでに含まれていた場合は、それらも保持されます。
支払いのステータスを確認するには、Webhook を利用することをお勧めします。
決済後のイベントを処理
支払いが完了すると、Stripe は payment_intent.succeeded イベントを送信します。ダッシュボード、カスタム Webhook、またはパートナーソリューションを使用してこれらのイベントを受信し、また、顧客への注文確認メールの送信、データベースでの売上の記録、配送ワークフローの開始などのアクションを実行します。
クライアントからのコールバックを待つのではなく、これらのイベントをリッスンします。クライアント側では、コールバックが実行される前に顧客がブラウザーのウィンドウを閉じたり、アプリを終了したりする可能性があります。また、悪意を持つクライアントがレスポンスを不正操作する恐れもあります。非同期型のイベントをリッスンするよう構築済みのシステムを設定することで、これ以降はより多くの決済手段を簡単に受け付けられるようになります。サポートされているすべての決済手段の違いをご確認ください。
ダッシュボードでイベントを手動で処理する
ダッシュボードを使用して、テスト決済をダッシュボードで表示したり、メール領収書を送信したり、入金を処理したり、失敗した決済を再試行したりできます。
Custom Webhook を構築する
Custom Webhook ハンドラを構築してイベントをリッスンし、カスタム非同期型の決済フローを作成します。Stripe CLI を使用して、ローカルで Webhook の導入のテストとデバッグを行います。
構築済みアプリを導入する
パートナーアプリケーションを統合することで、自動化やマーケティング/セールスなどの一般的なビジネスイベントを処理します。
Klarna 決済ページをカスタマイズする
Klarna フォームを事前入力する
顧客が延べ払いオプションを使用して Klarna に決済することを選択すると (後払い、分割払い、融資など)、Klarna は、リスク評価と承認のために十分な情報を収集します。情報の種類は、顧客の国によって異なります。ほとんどのヨーロッパの国では、完全な請求先住所と生年月日です。この情報は API を通じて渡すことができ、顧客がページに到着する前にフォームが事前入力されます。
Klarna の支払いページは、API からの請求書詳細が事前入力され、カスタマイズされてドイツの顧客に英語で表示されます。
PaymentIntent に項目を追加する
Klarna との統合項目
Klarna を導入する際に承認率を最適化するには、line_
データを含めて買い物客のカートの中身を表します。先行提供版については、支払い項目をご覧ください。
ウェブサイトに決済手段のメッセージを表示する
Payment Method Messaging Element は、顧客が購入時に商品、カート、支払いの各ページから、利用できる後払いの決済オプションを直接確認できるようにする、埋め込み可能な UI コンポーネントです。
ウェブサイトに Payment Method Messaging Element を追加するには、決済手段のメッセージを表示するをご覧ください。
