Blog

PayPal ExpressCheckoutボタンの実装

2018.03.13Cat:Symfony 開発

本投稿で扱う内容

  • PayPal ExpressCheckoutのフロント実装
  • checkout.jsを用いてIn-Contextな表示
  • 無効カードなどの際にカートに戻らずPayPal側での完結

バックエンドとの連携とフロー

2段階のステップを踏みます。

1. 注文情報の一時保持、バリデーションとPayPal機能の呼び出し
2. PayPalから正常に戻ってきた際に注文情報の構築

1ではPayPalの決済がまだ完了していないので
PayPalから正常に戻ってきた際に注文情報を構築するための必要情報をストックしておきます。
ExpressCheckoutを呼び出す際にもらうトークンをキーにしておく。

万が一途中でブラウザを閉じても良いように
2はコールバックAPIを窓口として用意し、1を基に受注作成する。

Twigでのフロント実装

最終的に以下のコードとなります。

概要

全項目で記述したコード+

記述で再現します。
checkoutボタンを表示させたい箇所に前述divタグを埋め込みます。

パラメータの渡し方など細かい仕様がなかなか見つからないところで苦戦しました。
またPDR機能(無効カード時の自動戻し遷移)をjs記述で制御するなども意外とバックエンドだけで完結しないという仕様。
同じく完了ページへの遷移もjsで制御せざるを得ない、という結果になりました。

Author Profile

ohba
ランニングと音楽とヲタトーク好きプログラマーです。 数学と英語を勉強中です。 DeepLearning始めました!
» 投稿一覧
     
  • Launch Cart越境ECカート

Archive

ページTOPへ