我一直遇到一些麻烦让Stripe为我工作,并搜索了一些例子,但似乎无法让它收费。
我正在使用Stripes,简单的结帐表单,它肯定会生成条带令牌,因为我可以在条带日志中看到它。然后,我将表单执行charge.php,它接收条带令牌作为POST变量,这是def工作,因为我可以回显令牌。
问题是它什么都不做,不会抛出任何错误,也不会给卡充电。
代码如下: 结帐页面:
<form action="charge.php" method="POST">
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="test key"
data-amount="2000"
data-name="Demo Site"
data-description="2 widgets ($20.00)"
data-image="/128x128.png">
</script>
</form>
实际PHP脚本收费:charge.php
<?php
require('Absolute Link to site /lib/Stripe.php');
// Set your secret key: remember to change this to your live secret key in production
// See your keys here https://dashboard.stripe.com/account
Stripe::setApiKey("test key");
// Get the credit card details submitted by the form
$token = $_POST['stripeToken'];
// Create the charge on Stripe's servers - this will charge the user's card
try {
$charge = Stripe_Charge::create(array(
"amount" => 1000, // amount in cents, again
"currency" => "aud",
"card" => $token,
"description" => "VIP Basic"
));
} catch(Stripe_CardError $e) {
// The card has been declined
}
?>
我通过电子邮件发送了条带支持,他们说charge.php
代码在他们的结尾处工作,并检查是否正确调用了lib。 error_log中没有任何警告和任何内容。
有没有人有任何想法?它应该是世界上最简单的东西,我把它的头发撕掉,只是看不到它。
答案 0 :(得分:0)
问题可能是卡不接受审计,你应该尝试签证或万事达卡。如果您在仪表板中看到生成的令牌,请尝试以下ajax方法。包括stripe.js和jquery。
<input type="text" id="card_number">
<input type="text" id="cvc">
<input type="text" id="ex_month">
<input type="text" id="ex_year">
<button id="paynow">Pay Now</button>
$('#paynow').click(function(){
Stripe.setPublishableKey('pk_test_Bwg5tfiOULnNK8DvS60zJ2Sm');
Stripe.card.createToken({
number: $("#card_number").val(),
cvc: $("#cvc").val(),
exp_month: $("#ex_month")val(),
exp_year: $("#ex_year").val()
}, stripeResponseHandler);
function stripeResponseHandler(status, error){
if(response.error){
alert(response.error.message);
}
else {
$.ajax({
url: 'charge.php',
type:'POST',
data:{token:response.id},
cache:false,
success: function(data){
alert(data);
}
});
}
}
});
答案 1 :(得分:0)
您的代码看起来正确且应该有效,因此问题很可能是卡被拒绝,但您没有处理错误。在此部分添加一些代码:
} catch(Stripe_CardError $e) {
// The card has been declined
}
回应错误等,你可能会发现问题。