我有条纹问题。当我用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发送自定义字段?
答案 0 :(得分:0)
您的代码对我来说是正确的。我建议在定义$IMEI
之后立即加上一行:
<?php echo "IMEI == ".$IMEI; ?>
所以你可以查看价值并确保它是正确的。
侧面注意事项 - 非常重要的一件事是从您的信用卡字段中删除name
属性形成!使用Stripe.js这样做是为了大大降低您的PCI合规性要求。在name
和cvc
等字段上设置card-number
属性会使值失败,因为值会发送到您的服务器。