さくらサーバーにて実装しました。
Webpay、実装カンタンだっていうしマニュアルもたくさんあるから大丈夫だろうとたかをくくっていたら、
完全につまづきました。これ、完全なる開発者向け(アプリとかWebサービス0から作るような人向け)なんですね・・・。
僕のスキルセットはHTML/CSS/Javascriptなので、PHPとかRubyとか本格的にやってないのでバックエンド詳しくはわからない。Wordpressとかはある程度できるけど。
なもんですごく苦労したんだけど、テストアカウントでひとまずなんとか一番シンプルな決済だけ導入出来たので備忘録的にメモ。
◆準備
(1)ライブラリ | WebPay: 開発者向けクレジットカード決済サービス https://webpay.jp/docs/libraries#client-side-libraries
このページから、サーバーサイド向けPHPの webpay-php-full-2.2.2.zip をDLし、解凍して任意のフォルダ(今回は/webpay/)にアップロード。
(2)クレジットカード入力フォームを作りたいページに以下のフォームを入れる
CheckoutHelper | WebPay: 開発者向けクレジットカード決済サービス https://webpay.jp/docs/checkout
これの以下のソースを記入。フォームを入れるページはPHPではなくhtmlでも可。
<form action="webpay/charge.php" method="post"> <script src="https://checkout.webpay.jp/v3/" class="webpay-button" data-key="test_public_XXXXXXXXXXXXXXXXXXX" data-lang="ja"></script> </form>
※data-keyはWebpay発行者のアカウントごとの公開鍵
※form actionはカード情報から取得したトークンIDの送り先(今回の場合はcharge.php)
(3)/webpay/フォルダに、charge.phpを作成。中身を以下にする。
<?php require "webpay-php-full-2.2.2/autoload.php"; use WebPay\WebPay; $webpay = new WebPay('test_secret_XXXXXXXXXXXXXXXXXXXXXXX'); // $tokenID = $_POST['webpay-token']; //顧客のカード情報を取得する場合は以下 $webpay->customer->create(array("card"=>$tokenID)); /* //2万円を即座に課金する場合は以下 $webpay->charge->create(array( "amount"=>20000, "currency"=>"jpy", "card"=>$tokenID )); */ ?>
※上記のコード(charge.php)により、フォームから送られてきたtokenIDを元に各種情報をwebpayに投げる。
(4)上記のだと即課金ではなく、顧客情報を一旦登録するやり方。その場合、webpayアカウント内で新たに課金する。
【参考サイト】
少しのコードでWebPayを導入する PHP Ver. – Qiita http://qiita.com/sowawa/items/576930dbb175e8b83ba5
コメント