【问题标题】:Laravel stripe and cashier no such payment methodLaravel Stripe 和 Cashier 没有这种支付方式
【发布时间】:2020-11-23 06:18:41
【问题描述】:

我正在使用 Laravel 7,我正在将条带与收银员集成,我遇到了问题

No such PaymentMethod: 'tok_1HBxFdEft5GkDC4v7ZnPgW5Y'

我正在使用自定义结帐表单 Html 代码是

<form class="rt-formtheme rt-paymentmethodform" method="POST" action="{{route('subscripe.process')}}" id="subscribe-form">
                    @csrf
                    <div class="div-stripe-errors col-12" style="margin-top: 30px;"></div>
                    <fieldset>
                        <legend>Choose your card</legend>
                        <!-- <div class="form-group">
                            <button type="submit" class="rt-btn rt-savebtn">Save</button>
                        </div> -->
                        <div class="form-group">
                            <span class="rt-radio">
                                <input type="radio" name="radiobutton" id="visa">
                                <label for="visa"><img src="{{asset('images/visa.png')}}"  alt=""></label>
                            </span>
                        </div>
                        <div class="form-group">
                            <span class="rt-radio">
                                <input type="radio" name="radiobutton" id="american-express">
                                <label for="american-express"><img src="{{asset('images/american-express.png')}}"  alt=""></label>
                            </span>
                        </div>
                        <div class="form-group">
                            <label>Card Number</label>
                            <input type="text" name="cardnumber" class="form-control" placeholder="1234 5678 9012 3456" data-stripe="number">
                        </div>
                        <div class="rt-twocols">
                            <div class="form-group">
                                <div class="rt-twoinputfieldholder">
                                    <div class="rt-twoinputfieldbox">
                                        <label>Expiry Month</label>
                                        <input type="text" name="expirymonth" class="form-control" placeholder="MM" data-stripe="exp-month">
                                    </div>
                                    <div class="rt-twoinputfieldbox">
                                        <label>Expiry Year</label>
                                        <input type="text" name="expiryyear" class="form-control" placeholder="YY" data-stripe="exp-year">
                                    </div>
                                </div>
                            </div>
                            <div class="form-group">
                                <label>CVC</label>
                                <input type="text" name="cvv" class="form-control" placeholder="123" data-stripe="cvc">
                            </div>
                        </div>
                        <div class="form-group margin-zero rt-savecarddetailbox">
                            <span class="rt-checkbox">
                                <input type="checkbox" name="savecarddetail" id="savecarddetail">
                                <label for="savecarddetail">Save Card Details</label>
                            </span>
                            <button type="submit" class="rt-btn float-right">Checkout</button>
                        </div>
                    </fieldset>
                </form>

而js代码是

<script src="https://js.stripe.com/v2/"></script>
<script>
Stripe.setPublishableKey('{{ env("STRIPE_KEY") }}');
$(document).ready(function(){
    $('#subscribe-form').submit(function(e){
        
        var form = $(this);
        
        form.find('button').prop('disabled', true);

        Stripe.card.createToken(form, function(status, response) {
            if (response.error) {
                form.find('.div-stripe-errors').text(response.error.message).addClass('alert alert-danger');
                form.find('button').prop('disabled', false);
            } else {
                // append the token to the form
                form.append($('<input type="hidden" name="cc_token">').val(response.id));
                // debugger
                // submit the form
                form.get(0).submit();
            }
        });

        e.preventDefault();
    });
});

路线是

    Route::post('/subscribe_process', 'Dashboard\CheckoutController@subscribeProcess')->name('subscripe.process');

控制器方法是

public function subscribeProcess(Request $request)
{
    try{
        $cc_token = $request->cc_token;
        $user = Auth::user();
        $user->newSubscription('Main','Monthly')->create($cc_token);
        alert()->success('User Updated Successfully', 'Success');
        return \redirect()->back();
    }catch(\Exception $ex){
        return $ex->getMessage();
    }
}

我还在条纹仪表板上创建计划

当我创建订阅时它显示错误没有这样的付款方式我是新的条纹请帮助我

【问题讨论】:

    标签: javascript jquery laravel stripe-payments laravel-cashier


    【解决方案1】:

    “No such...”错误通常是由于 API 密钥不匹配(例如使用测试和实时密钥的混合)或尝试访问存在于不同帐户上的对象(例如尝试执行来自您的平台帐户对已连接帐户上创建的对象的操作)。

    【讨论】:

    • 是的,但是在某个地方您的 API 密钥不匹配(例如,在客户端使用您的实时密钥,但在服务器上使用您的测试密钥),或者您在一个 Stripe 帐户上创建了令牌并试图在完全不同的 Stripe 帐户上使用它,这是行不通的。
    • 非常感谢您的回复。这是我的错误,我使用的是旧版本的 api,现在我使用新方法修复了它。首先我发送付款意图,然后创建付款方式,我解决了这个问题。我使用了这个laravel.com/docs/7.x/billing 文档
    猜你喜欢
    • 1970-01-01
    • 2018-07-26
    • 2015-10-27
    • 2022-11-18
    • 2020-11-14
    • 2020-11-08
    • 2020-12-14
    • 2021-11-27
    • 2021-11-13
    相关资源
    最近更新 更多