条带异常错误(必须提供来源或客户)

时间:2016-12-10 15:25:06

标签: javascript php laravel stripe-payments

我正在尝试处理这个项目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,我想如何解决这个问题?请帮帮我

2 个答案:

答案 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>)添加脚本。