我正在尝试处理这个项目https://www.youtube.com/watch?v=bu0J-j5qYas 所以我可以用虚拟信用卡多次充电。 但是当我尝试检查时,我得到异常错误消息,它说必须提供源或客户,下面是我写的javascript。
Stripe.setPublishableKey(''); // im not showingt this key (censored)
var $form = $('#checkout-form');
$form.submit(function(event) {
$('#charge-error').addClass('hidden');
$form.find('button').prop('disabled', true);
Stripe.card.createToken({
number: $('#card-number').val(),
cvc: $('#card-cvc').val(),
exp_month: $('#card-expiry-month').val(),
exp_year: $('#card-expiry-year').val(),
name: $('#card-name').val()
}, stripeResponseHandler);
return false;
});
function stripeResponseHandler(status, response) {
if (response.error) {
$('#charge-error').removeClass('hidden');
$('#charge-error').text(response.error.message);
$form.find('button').prop('disabled', false);
} else {
var token = response.id;
$form.append($('<input type="hidden" name="stripeToken" />').val(token)); // this will generate the stripeToken
// Submit the form:
$form.get(0).submit();
}
}
我在控制器目录下面创建了这个函数,就像指南那样
public function postCheckout(Request $request)
{
if (!Session::has('cart')) {
return redirect()->route('shop.shoppingCart');
}
$oldCart = Session::get('cart');
$cart = new Cart($oldCart);
Stripe::setApiKey(''); // not showing this key (censored)
try {
Charge::create(array(
"amount" => $cart->totalPrice * 100,
"currency" => "usd",
"source" => $request->input('stripeToken'), // obtained with first code i wrote above
"description" => "Test Charge"
));
} catch (\Exception $e) {
return redirect()->route('checkout')->with('error', $e->getMessage());
}
Session::forget('cart');
return redirect()->route('product.index')->with('success', 'Successfully purchased products!');
}
}
它继续返回抛出异常错误消息的catch,这是否意味着它无法获得stripetoken,我想如何解决这个问题?请帮帮我
答案 0 :(得分:0)
嗨,我想我发现了问题,我休息了api键,还检查了公钥和密钥中的引号之间的空格, Stripe.setPublishableKey( 'pk_anjndjxnh8hih9u220822'); 和 条纹:: setApiKey( 'sk_dkneijhf9u9ue9ujednf9hefnie'); //没有显示此密钥(审查)
答案 1 :(得分:0)
试试这个Stripe: Must provide source or customer这对我有用!
在调用checkout js文件之前,只需使用jquery-3.1.1.min.js(如<script type="text/javascript" src="/javascripts/jquery-3.1.1.min.js"></script>
)添加脚本。