Stripe laravel 收银台重复付款方式

时间:2021-01-03 23:54:14

标签: laravel stripe-payments laravel-cashier

我遇到了laravel收银员的问题,当我订阅产品时,取消订阅然后再次订阅,它会创建一个新的付款方式(相同)并将其设为默认值。但是为什么stripe store 2次同一张卡呢?如果我取消并再次订阅,我收到了 3 次支付卡。 如何检查付款方式是否已存在?

谢谢

这是我的订阅:

$user->newSubscription($plan_name, $request->plan)->create($request->token

这是我的 javascript:

const stripe = Stripe('{{ config('cashier.key') }}')

    const elements = stripe.elements()
    const cardElement = elements.create('card', {
        hidePostalCode: true
    })

    cardElement.mount('#card-element')

    const form = document.getElementById('payment-form')
    const cardBtn = document.getElementById('card-button')
    const cardHolderName = document.getElementById('card-holder-name')

    form.addEventListener('submit', async (e) => {
        e.preventDefault()

        cardBtn.disabled = true
        const { setupIntent, error } = await stripe.confirmCardSetup(
            cardBtn.dataset.secret, {
                payment_method: {
                    card: cardElement,
                    billing_details: {
                        name: cardHolderName.value
                    }
                }
            }
        )

        if(error) {
            cardBtn.disable = false
        } else {
            let token = document.createElement('input')

            token.setAttribute('type', 'hidden')
            token.setAttribute('name', 'token')
            token.setAttribute('value', setupIntent.payment_method)

            form.appendChild(token)
            form.submit();
        }
    })

1 个答案:

答案 0 :(得分:0)

您可以使用 fingerprint of the new card inside the Payment Method 与现有付款方式进行比较以查看它是否重复,然后选择不(重新)添加它。