下記を参考にPAY.JPへの支払いを確認しています。
支払い時に、支払ったユーザーのアカウントと認識したいのですが、下記の方法でも支払いのユーザーを確認することが出来ます。
(セキュリティー的な細かい点は省いています)
html
1 <h1>PayJP Test</h1> 2 <form action="./payjp.php" method="post"> 3 <input type="hidden" name="payment_user" value="sample_user"></input> 4 <script src="https://checkout.pay.jp/" class="payjp-button" data-key="pk_test_************************"></script> 5 </form>
php
1require_once 'init.php'; 2 3//◆支払い以外のアクセスは弾く 4if (!isset($_POST['payjp-token'])) { 5 echo "トークンがセットされていない"; 6 exit; 7} 8 9//失敗時のメッセージ 10$err = ''; 11//送られてきた、顧客のカード情報を使って作成されたトークン 12$token = $_POST['payjp-token']; 13//支払い価格 14$amount = 500; 15//秘密鍵 16$secret = 'sk_test_************************'; 17//通貨(通常は日本円を表す'jpy'を指定する) 18$currency = 'jpy'; 19 20try { 21 //◆新しい課金の作成 22 Payjp\Payjp::setApiKey($secret); 23 $result = Payjp\Charge::create(array( 24 "card" => $token, 25 "amount" => $amount, 26 "currency" => $currency 27 )); 28 if (isset($result['error'])) { 29 throw new Exception(); 30 } 31} catch (Exception $e) { 32 // カードが拒否された場合 33 $err = $result['error']['message']; 34 echo $err; 35 exit; 36} 37 38echo "支払いが完了しました。"; 39var_dump($_POST);
支払い時にHIDDENで値をを渡します。
最終的に画面に表示される内容は下記となり、HIDDENの値も含まれた形で戻るので支払いをした人のアカウント自体もわかるのですが
支払いが完了しました。 array(2) { ["payment_user"]=> string(10) "sample_user" ["payjp-token"]=> string(32) "tok_************************" }
支払い者の特定に関しては流れとして、こういった形で行うのが普通なのでしょうか?
もしくは支払者の特定に関しては仕様書の見落としなどがあるでしょうか?
PAY.JPのドキュメントを読んではいるのですが、支払い時のアカウントを特定するにあたって上記以外の方法が良い、もしくはこれでも問題ないというものがあればアドバイス頂けると助かります。
あなたの回答
tips
プレビュー