条纹自定义字段

时间:2015-04-18 11:24:08

标签: php jquery stripe-payments

我有条纹问题。当我用Cardnumber,CVC等写作时,一切正常。

但我需要添加一个自定义字段,以便在我在charge.php中编写$ _POST ['ImeiNum']时可以正常工作。

这是我的HTML和JQUERY(index.html)

的代码
<script type="text/javascript">
        // this identifies your website in the createToken call below
        Stripe.setPublishableKey('pk_test_d34534');


        function processStripeResponse(status, response){
          var form = $('#payment-form<?php echo $row['product_id']; ?>');

          if(response.error){
            form.find('.errors').text(response.error.message);
            form.find('button').prop('disabled', false);
          }else{
            var token = response.id;
            form.append($('<input type="hidden" name="stripeToken" />').val(token));
            form.get(0).submit();
          }
        };

        $(function(){
          $('#payment-form<?php echo $row['product_id']; ?>').submit(function(event) {
            var form = $(this);
            form.find('button').prop('disabled', true);

            Stripe.card.createToken(form, processStripeResponse);

            return false;
          });
         });
    </script>


    <form action="charge.php" method="POST" id="payment-form<?php echo $row['product_id']; ?>">


         <input type="hidden" name="ImeiNum" value="0987654321"> 


          <div>
            <label for="card-number">Card Number</label>
            <input type="text" size="20" data-stripe="number" id="card-number" name="card-number">
          </div>

          <div>
            <label for="cvc">Security Code</label>
            <input type="text" size="4" data-stripe="cvc" id="cvc" name="cvc">
          </div>

          <div>
            <label>Expiration (MM/YYYY)</label>
            <input type="text" data-stripe="exp-month" name="exp-month">
            <span> / </span>
            <input type="text" data-stripe="exp-year" name="exp-year"/>
          </div>

          <input type="submit" name="pay" value="Pay">

       <div class="errors"></div>

    </form>

这是我的PHP代码(charge.php)

<?php
require_once('/storage/content/88/200388/vendor/autoload.php');

    \Stripe\Stripe::setApiKey('pk_test_APId34534');

    $token = $_POST['stripeToken'];

    $IMEI = $_POST['ImeiNum'];

    try {
        $charge = \Stripe\Charge::create(array(
          "amount" => 1000,
          "currency" => "usd",
          "source" => $token,
          "description" => $email,
          "metadata" => array("IMEI" => $IMEI))
        );

        print_r($charge);
    }catch(\Stripe\Error\Card $e){
        echo $e->getMessage();
    }


?>

如何向charge.php发送自定义字段?

1 个答案:

答案 0 :(得分:0)

您的代码对我来说是正确的。我建议在定义$IMEI之后立即加上一行:

<?php echo "IMEI == ".$IMEI; ?>

所以你可以查看价值并确保它是正确的。

侧面注意事项 - 非常重要的一件事是从您的信用卡字段中删除name属性形成!使用Stripe.js这样做是为了大大降低您的PCI合规性要求。在namecvc等字段上设置card-number属性会使值失败,因为值会发送到您的服务器。