3月くらいにこういう記事書いてました。
Yahoo!ウォレット FastPay サイトがオープンしていました!
この記事の中でサンプルコードを書いて、プラグイン近日開発って書いたのですが、現在出来てません。
ごめんなさーーーい!!!
で、一歩進めてこのようなサンプルを作りました。
※前回のサンプルで基本的なもののダウンロード等準備をしてください。
※SSL通信です。
このFastPayって開発コードの中、すなわちPHPが受け取るHTTPリクエスト自体にカード番号が入ってきません。
ですので、お客様にとってはより安全です。開発者・・・というか事業者へクレジットカード番号が保持される瞬間も無いわけですから。
※Yahoo!は知ってますよ。
で、前のサンプル(FastPayテスト)見るとわかるのですが、通常決済ボタン自体は「Y!支払う」になってしまいます。
この辺り、このボタンをjqueryで・・・なんとかしてみました。
このような感じで使えると思います。
サンプルコードは下記の通り!!
下記コードを「index.html」として文字コードUTF-8で保存してください。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>クラウドファンディング テスト</title> </head> <body> <form action="post.php" method="POST"> <img src="user_default.gif" style="float: left; margin: 20px;" />寄付をお願いします!<br /> <br /> 手間暇かけて開発しております。<br /> コーヒー代をお振り込みいただければ開発が進みます!<br /> どうぞよろしくお願いいたします。<br /> <br /> お支払い手続き後、送信ボタンを押して下さい。<br /> 任意の金額をご入力ください:<input type="text" name="amount" value="1500" /><br /> Yahoo!Fastpayで決済を行う場合は下記より支払い処理をお願いします。<br /> <script src="https://s.yimg.jp/images/wallet/fastpay/js/fastpay-v1.js" class="fastpay-button" data-key="(データキー)"> </script> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $('input:image').attr('src', 'button_kessai.jpg'); }); </script> </form> <div style="clear:both; font-weight: bolder;">※これはあくまでもテストです。<br /> クレジットカード番号には 4242424242424242 のテストカードをお使い下さい。 </div> </body> </html>
※(データキー)のところには ご自身のFastpay→アカウント画面 https://fastpay.yahoo.co.jp/test/account にて取得した「アプリケーションID」を入れてください。
下記コードは「post.php」として文字コードUTF-8で保存してください。
<?php require_once(dirname(__FILE__) . "/FastPay.php"); $error_msg = ''; $error_flg = FALSE; try { $token = htmlspecialchars($_POST["fastpayToken"]); $price = htmlspecialchars($_POST["amount"]); if (is_nan($price)) { $error_msg = "不正な文字列を入力されています。"; $error_flg = TRUE; } if ( !$error_flg ) { FastPay::setSecret("(シークレットキー)"); $response = FastPay_Charge::create(array( "amount" => $price, "card" => $token, "description" => "テスト", )); // 決済成功 $amount = $response->amount; $last4 = $response->card->last4; $currency = $response->currency; } } catch (Exception $e) { // ステータス $e_status = $e->http_status; // ボディ $e_body = $e->http_body; // エラー $e_error = $e_body->error; // タイプ $e_type = $e_error->type; // コード $e_code = $e_error->code; // パラメータ $e_param = $e_error->param; // エラー echo "HTTP STATUS:".$e_status."<br />"; if ( $e_status != "200" ) { $error_flg = TRUE; } switch ($e_status) { /** 200 OK - リクエストは成功しました。 400 Bad Request - 必要なパラメータがありません。 401 Unauthorized - API keyの認証に失敗しました。 402 Request Failed - パラメータは有効でしたが、現在のステータスではこのリクエストは実行できません。 404 Not Found - リクエストされた内容が存在しません。 500, 502, 503, 504 Server errors - Yahoo!ウォレット FastPay側のシステムエラーです。 */ case "400" : $error_msg = "必要なパラメータがありません。"; break; case "401" : $error_msg = "APIキーの認証に失敗しました。"; break; case "402" : $error_msg = "支払い処理が完了していません。"; break; case "404" : $error_msg = "リクエストされた内容が存在しません。"; break; case "500": case "502": case "503": case "504": $error_msg = "Yahoo!ウォレット FastPay側のシステムでエラーになっています。"; break; // case "200" : // break; } } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>FastPayテスト結果</title> </head> <body> <?php if ( !$error_flg ) { ?> #####ここをサンキュー画面にして下さい#####<br /> <br /> 決済が完了しました。<br /> 決済金額:<?php echo $amount; ?>円<br /> 通貨:<?php echo $currency; ?><br /> カード番号(下4桁のみ表示)<br /> ************<?php echo $last4; ?> <!-- ここでサンキュー画面または入力内容確認画面の表示を行う! --> <?php } else { ?> <form action="index.html"> <?php echo $error_msg."<br />".$e_code.":".$e_type;; ?><br /> <input type="submit" value="戻る" /> </form> <?php } ?> </body> </html>
※(シークレットキー)のところにはFastpayのアカウント画面 https://fastpay.yahoo.co.jp/test/account の「シークレット」のコードを入れてください。
今回はエラー処理もちょっと入れています。
ソース内の指定したところへデザイン等施すことでサンキュー画面になると思います。
確認画面→完了画面への流れはちょっと工夫が必要です。
index.html と post.php としていますが、これをランディングページだとすればランディングページ→即購入という流れになっていると思います。
工夫次第ではこのままご利用可能かと・・・。
※FastPay.php等ライブラリは前回のサンプルの通り適宜ダウンロードしておいてください。
では、もう少し開発してみます。
Fastpayのサンプルでクラウドファンディングにしていますが、ホンモノだったら寄付集まるかな・・・んなこたーないな(笑)
追記
このサンプルスクリプトを GitHubにアップしました。
↓ 記事を参考にしてみてください!
◯GitHubにFastPayのテストソース上げてみました