Laravel:请求时无法获取条带令牌

时间:2018-04-25 13:32:43

标签: javascript php jquery laravel stripe-payments

我有一个表格,获取信息 - >显示信息 - >条纹结帐 - >提交表格,

问题是我正在删除条纹结帐表单标签

<form action="/charge" method="post" id="payment-form">

而我正在使用原始表单标签,因为我无法在表单中使用表单,而且所有处理都应该在一个提交中。

我已经返回了表单请求数据,但它没有条带令牌。 其他表单数据可用,但没有令牌。

我缺少什么?

一个简单的过程,我已经包括:

<script src="https://js.stripe.com/v3/"></script>

文件末尾的js:

var stripe = Stripe('pk_test_73ZtD3qICEkFfyMqegGubJLV');
var elements = stripe.elements();
var style = {
    base: {
        color: '#32325d',
        lineHeight: '18px',
        fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
        fontSmoothing: 'antialiased',
        fontSize: '16px',
        '::placeholder': {
        color: '#aab7c4'
        }
    },
    invalid: {
        color: '#fa755a',
        iconColor: '#fa755a'
    }
};
var card = elements.create('card', {style: style});
card.mount('#card-element');
card.addEventListener('change', function(event) {
    var displayError = document.getElementById('card-errors');
    if (event.error) {
        displayError.textContent = event.error.message;
    } else {
        displayError.textContent = '';
    }
});
var form = document.getElementById('signupFormPetOwner');
form.addEventListener('submit', function(event) {
    event.preventDefault();
    stripe.createToken(card).then(function(result) {
        if (result.error) {
            var errorElement = document.getElementById('card-errors');
            errorElement.textContent = result.error.message;
        } else {
            stripeTokenHandler(result.token);
        }
    });
});

这是我整合条纹的表格:

<form id="signupFormPetOwner" method="post">
    <div class="stepOne">
       ...
    </div>
    <div class="stepTwo">
       ...
    </div>

    <div class="stepThree">
       <div class="form-row">
           <label for="card-element">
               Credit or debit card
           </label>
           <div id="card-element"></div>
           <div id="card-errors" role="alert"></div>
       </div>
    </div>
    <button class="submit">Submit</button>
</form>

和AJAX请求:

$.ajax({
    url: "/register",
    type: "post",
    data: new FormData($('form')[0]),
    cache: false,
    contentType: false,
    processData: false,
    beforeSend: function() {
        $('#cover').show();
    },
    success: function(response) {
        $('#cover').hide();
        return true;
    }
});

1 个答案:

答案 0 :(得分:0)

您应该将Stripe公钥作为表单中某些隐藏输入的值传递,或者附加到FormData新对 - 名称,值

pickle(filename=hash(set(feature_list)), model=model)