我已经实施了Stripe付款,但问题是我不断收到此错误:
{status:500,错误:“缺少必需的参数:金额。”}
从代码中可以看出,我有所有参数,但我仍然不知道为什么会出现这个错误。这是我正在使用的代码:
public function process(){
try {
Stripe::setApiKey('sk_text_key');
$charge = Stripe_Charge::create(array(
"amount" => 2000,
"currency" => "USD",
"card" => $this->input->post('access_token'),
"description" => "Stripe Payment"
));
} catch (Stripe_InvalidRequestError $e) {
// Invalid parameters were supplied to Stripe's API
echo json_encode(array('status' => 500, 'error' => $e->getMessage()));
exit();
}
}
这是我用来提交表单的javascript:
$(function() {
var $form = $('#payment-form');
$form.submit(function(event) {
$form.find('.submit').prop('disabled', true);
$form.find('.submit').val('Please wait...');
Stripe.card.createToken($form, stripeResponseHandler);
return false;
});
});
function stripeResponseHandler(status, response)
{
if (response.error) {
alert(response.error.message);
}
else {
$.ajax({
url: '<?php echo base_url('payment/process');?>',
data: {access_token: response.id},
type: 'POST',
dataType: 'JSON',
success: function(response){
console.log(response);
if(response.success)
window.location.href="<?php echo base_url('booking/thankyou'); ?>";
},
error: function(error){
console.log(error);
}
});
}
}
答案 0 :(得分:4)
我发现您使用的是遗留代码,在较新版本的Stripe中,您可以像Charge
那样制作:
// Token is created using Stripe.js or Checkout!
// Get the payment token ID submitted by the form:
$token = $_POST['stripeToken'];
$charge = \Stripe\Charge::create(array(
"amount" => 2000,
"currency" => "usd",
"description" => "Stripe Payment",
"source" => $token,
));
查看更多示例here。