Stripe

※JavaScript
<script src="https://checkout.stripe.com/checkout.js"></script>

<script>
 $(function(){

  // 支払金é¡
  var amount = $('#amount').val();

  var handler = StripeCheckout.configure({
   // APIキー
   key: "Stripe Privateキー",
   image: 'https://stripe.com/img/documentation/checkout/marketplace.png',
   locale: 'auto',
   token: function(token) {

    window.onbeforeunload = function() {
     return "";
    };

    // ã‚µãƒ¼ãƒæƒ…å ±
    var form = document.createElement("form");
    form.setAttribute('method', "POST");
    form.setAttribute('action', "php等サーãƒã®ãƒ¡ã‚½ãƒƒãƒ‰ãƒ‘ス");

    // トークン(自動生æˆ)
    var inputToken = document.createElement("input");
    inputToken.setAttribute('type', "hidden");
    inputToken.setAttribute('name', "stripeToken");
    inputToken.setAttribute('value', token.id);
    form.appendChild(inputToken);

    // 支払ã„者メールアドレス(クレジット情報入力å­ç”»é¢ã§å…¥åŠ›)
    var inputEmail = document.createElement("input");
    inputEmail.setAttribute('type', "hidden");
    inputEmail.setAttribute('name', "stripeEmail");
    inputEmail.setAttribute('value', token.email);
    form.appendChild(inputEmail);

    // 支払ã„金é¡
    var inputAmount = document.createElement("input");
    inputAmount.setAttribute('type', "hidden");
    inputAmount.setAttribute('name', "amount");
    inputAmount.setAttribute('value', amount);
    form.appendChild(inputAmount);

    document.body.appendChild(form);

    setTimeout(function() {
     window.onbeforeunload = null;
     form.submit();
    }, 1000);

   }
  });

  $('#purchase').on('click', function (e) {
   // Open Checkout with further options:
   handler.open({
    name: "クレジット情報入力å­ç”»é¢ã‚¿ã‚¤ãƒˆãƒ«",
    description: "クレジット情報入力å­ç”»é¢èª¬æ˜Žæ–‡",
    currency: "jpy",
    
    // 固定ã®å ´åˆã¯â†“を指定。都度入力ã®å ´åˆã¯ä¸è¦
    email: ~,
    
    // ユーザ情報を記録ã™ã‚‹æ©Ÿèƒ½ã‚’使用。デフォルト:true
    allowRememberMe: "true",
    
    // 支払ã„金é¡(本例ã®å ´åˆã¯å†’é ­ã§htmlã‹ã‚‰å–å¾—)
    amount: amount
   });
   e.preventDefault();
  });

  window.addEventListener('popstate', function() {
   handler.close();
  });
 });
</script>

※PHP
use Stripe\Charge;
use Stripe\Stripe;
use Stripe\Error\Card;

$post = $this->request->getData();

try {

 Stripe::setApiKey(STRIPE_SK);

 $token = $post['stripeToken'];
 $amount = $post['amount'];

 $charge = Charge::create([
  'amount' => $amount,
  'currency' => 'jpy',
  'description' => 'æ”¯æ‰•ã„æƒ…å ±',
  'source' => $token,
 ]);

}catch(Card $e){
 $this->Flash->error('失敗ã—ã¾ã—ãŸã€‚');
 $this->log($e);
 $this->redirect(~);
 return;
}

return;

Follow me!

次ã®è¨˜äº‹

Bootstrap BootBox