2017-07-30 16 views
3

ユーザーはストライプを使用してカスタム金額を入力する必要があります。彼らはインプットで支払うものを入力します。それから私は、デフォルトのストライプチェックアウトボタンの下の量を収集するスクリプトを持っています。しかし、私はcharge.phpのチャージサーバー側をどのように扱うべきでしょうか?あなたがチェックアウトを置き、あなたもの量を収集するための入力を追加したいと思います<form>以内ストライプ&PHPで可変額(寄付)を処理する

donation.php

//user enter custom amount 
    <input type="number" class='form-control' 
    id="custom-donation-amount" 
    placeholder="$50.00" min="0" step="10.00 " /> 

    //default stripe checkout button 
     <script 
     src="https://checkout.stripe.com/checkout.js" class="stripe-button" 
     data-key="pk_test_XXXXXXXXXXXXXXX" 
     data-amount="0" 
     data-name="ORGANIZATION" 
     data-description="Saving Penguins" 
     data-image="logo.png" 
     data-locale="auto" 
     data-zip-code="true" 
     data-billing-address="true" 
     data-label="DONATE" 
     data-currency="usd"> 
     </script> 

//script to collect variable amount 
    <script type="text/javascript"> 
    $(function() { 
     $('.donate-button').click(function(event) { 
      var amount = $('#custom-donation-amount').val();   
      $('.stripe-button').attr('data-amount', amount) 
     }); 
    }); 
</script> 

charge.php

<?php require_once('./config.php'); 

    $token = $_POST['stripeToken']; 
    $email = $_POST['stripeEmail']; 

    $customer = \Stripe\Customer::create(array(
     'source' => $token, 
     'email' => $email) 
); 

    $charge = \Stripe\Charge::create(array(
     'customer' => $customer->id, 
     'amount' => $amount, 
     'currency' => 'usd' 
)); 

    header("Location: confirmation.php"); 
die(); 


?> 

答えて

4

ユーザー。私は場合は、トークンがストライプ

$token = $_POST['stripeToken']; 
$email = $_POST['stripeEmail']; 
$amount = $_POST['amount']; 

// your code to create a charge 
// ... 

によって作成されただろうずっと同じように、チェックアウトを提出するときにこのamountフィールドをつかむことができ、あなたのバックエンドでamount

<form method="POST" action="/charge.php"> 
<input type="number" class="form-control" name="amount" id="custom-donation-amount" placeholder="50.00" min="0" step="10.00" /> 
<script 
src="https://checkout.stripe.com/checkout.js" class="stripe-button" 
data-key="pk_test_XXXXXXXXXXXXXXX" 
data-name="ORGANIZATION" 
data-description="Saving Penguins" 
data-image="logo.png" 
data-locale="auto" 
data-billing-address="true" 
data-label="DONATE" 
data-currency="usd"> 
</script> 
</form> 

の名前私の入力を与えてくれた名前に注意してくださいチェックアウトウィンドウ内に表示される量を動的に変更する場合は、基本的なチェックアウトブロックではなくカスタムチェックアウトを使用するか、正しく更新されない可能性があります。

https://stripe.com/docs/checkout#integration-custom

または、フィドルのためを参照してください。 https://jsfiddle.net/ywain/g2ufa8xr/

+0

これは今完璧な作品素晴らしいです。 –

関連する問題