June 28, 2013

FuelPHPでWebPayのAPIを叩いてみる

先日、WebPayというサービスが正式リリースされました。
https://webpay.jp/

PayPalのようなクレジットカード決済の代行が出来るみたいです。PayPalのAPI周りは前々から調べてみたかったのですが、中々きっかけもなく、また、何処から手をつけるべきかも良くわからず、結局は触らずじまいのままでした。

対して、WebPayは日本発のサービスのようで、APIドキュメントが凄く見やすいです。
https://webpay.jp/docs/api/php

また、テスト環境も整備されているようで、PayPalと比べると敷居はかなり低い印象です。
https://webpay.jp/docs/introduction

試しに、FuelPHPでAPIを一つ叩いてみます。
https://webpay.jp/docs/api/php#charges

FuelPHP 1.6.1をインストールして composer install が完了している状態とします。

WebPayのPHP用ドキュメントにStripe PHPが必要。と書かれているので、インストールします。

FuelPHPのルートにあるcomposer.jsonのrequireに以下を追記して composer update します。
"stripe/stripe-php": "1.*"
Stripe PHP
https://github.com/stripe/stripe-php
http://packagist.org/packages/stripe/stripe-php

尚、Stripe PHPはstripeという海外サービス用のライブラリのようで、WebPayは、そのStripeのAPI仕様に準じている。という感じみたいです。
https://stripe.com/

どこかのコントローラに以下を書いてアクセスしてみます。ドキュメント丸コピですが。。。
// テスト用のAPIキーなはずです
Stripe::setApiKey("test_secret_eHn4TTgsGguBcW764a2KA8Yd");

// これをしないとAPIエンドポイントが前述のStripeに向いてしまうはずです
Stripe::$apiBase = "https://api.webpay.jp";

// APIを実行してみます
$charge = Stripe_Charge::create(array(
    "amount" => 400,
    "currency" => "jpy",
    "card" => array(
        "number" => "4242-4242-4242-4242",
        "exp_month" => "11",
        "exp_year" => "2014",
        "cvc" => "123",
        "name" => "KEI KUBO"
    ),
    "description" => "アイテムの購入"
));

// リターンを確認してみます
Debug::dump($charge);
(課金?)ID入りのStripe_Chargeオブジェクトが返ってきました。


P.S.
パッケージ化も考えたのですが、Stripe PHPに一通り揃っているので、たぶん、app側でアプリケーションの都合に応じたラップクラスを作るのが良いのかなーと、今のところは思います。

No comments:

Post a Comment