我遇到了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();
}
})
答案 0 :(得分:0)
您可以使用 fingerprint of the new card inside the Payment Method 与现有付款方式进行比较以查看它是否重复,然后选择不(重新)添加它。