Perlのようなもので

Perl、Ruby、Pythonの日々

サイトにPayPal決済を組み込んだ

海外向けのECサイトに欠かせないのが、PayPalでの決済です。
厳しい審査などはなく、銀行口座が確認できれば受取アカウントを開設できてしまうのもよいところです。

今回は、Perlで書かれたECシステムでPayPal APIを使用して決済を行う仕組みを追加します。
PerlなのでとりあえずCPANを検索。すると、Business::PayPal::APIなるモジュールを発見。
早速、適当にドキュメントを読み、試行錯誤。
何とか組み込めました。

以下簡単に解説
手順は、APIオブジェクトを作成→決済用のキーを発行→PayPalサイトで認証→決済完了
という感じです。

use Business::PayPal::API::ExpressCheckout;

my $ppapi = Business::PayPal::API::ExpressCheckout(
  Username => 'xxxx',
  Password => 'xxxx',
  Signature => 'xxxxxxxxxxx',
  sandbox => 1,
);

my %response = $ppapi->SetExpressCheckout(
  OrderTotal => 99.98,
  ReturnURL => 'http://example.com/',
  CancelURL => 'http://example.com/',
);

# 成功したら、PayPalサイトにリダイレクト
# このとき、PayPalが発行するトークン(文字列)を渡す
my $token = $response{'Token'};
# ここにリダイレクトの処理

ここで処理を一旦PayPalサイトに渡します。
購入者はPayPalサイトでログインし、支払いの承認をします。
承認が終わると、"ReturnURL"で指定したページに戻るので、再度処理を続けます。
次は最終的な購入確認画面を表示しました。

my %details = $ppapi->GetExpressCheckoutDetails($token);
my %response = $ppapi->DoExpressCheckoutPayment(
  Token => 'xxxxx',
  PayerID => 'aaaaaa',
  OrderTotal => 99.98,
);

これでPayPalでの決済が完了です。
オプションはいろいろありますが、最低限これだけで決済が完了します。

あとは速やかに商品を発送してあげましょう。