Stripe - 当我使用零计划更新订阅时,PaymentIntent 为空
Posted
技术标签:
【中文标题】Stripe - 当我使用零计划更新订阅时,PaymentIntent 为空【英文标题】:Stripe - PaymentIntent is null when I updated subscription with plan zero 【发布时间】:2022-01-18 05:27:09 【问题描述】:我正在使用条纹元素,当我创建付款意图时,如果有特定价格的计划,它对我有用
但当计划为零 $0 时,它无法识别 payment_intent 或 client_secret
# Here I created an object of type subscription incompletely (@subscription)
# In such a way that the user can enter their credit card and with the help of
# @subscriptions confirm if everything is fine in checkout.html.erb
def checkout
@subscription = Stripe::Subscription.create(
customer: current_user.stripe_customer_id, # stripe customer_id for suscription
items: [
price: params[:price] # attached price of suscription plans
],
payment_behavior: 'default_incomplete', # PaymentIntent with status=incomplete
expand: ['latest_invoice.payment_intent'] # return the payment_intent data
)
end
# checkout.html.erb
<form id="payment-form">
<div class="form-row">
<label for="card-element">
<!-- Debit/credit card -->
</label>
<div id="card-element">
<!-- a Stripe Element will be inserted here -->
</div>
<!-- Used to display Elements errors -->
<div id="card-errors" role="alert"></div>
</div>
<button id="submit">Submit Payment</button>
</form>
<script>
// Initialize stripe elements
var stripe = Stripe("<%= ENV['STRIPE_PUBLISHABLE_KEY'] %>");
var elements = stripe.elements();
var cardElement = elements.create('card');
cardElement.mount('#card-element');
var formElement = document.getElementById('payment-form');
formElement.addEventListener('submit', function(event)
event.preventDefault();
# here I create the payment intention but when the plan has a subscription of $ 0
# it
# does not recognize me neither the field client_secret nor the payment_intent
stripe.confirmCardPayment("<%=
@subscription.latest_invoice.payment_intent.client_secret %>",
payment_method: card: cardElement
).then(function(result)
if (result.error)
console.log(result.error.message);
window.location.reload();
else
window.location.href = "/" ;
);
);
我不知道它是否很好地解释了我,我想要创建一个每月 0 美元的订阅,就像我对其他价格的计划所做的那样
欢迎任何帮助,非常感谢您阅读我的文章
【问题讨论】:
【参考方案1】:来自Stripe PaymentIntent docs
最低金额为 0.50 美元或等值的收费货币。
您可以通过免费试用创建subscriptions,但由于上述付款意图限制,我认为如果计费金额为 0 美元,它将不起作用。
【讨论】:
太糟糕了,我得另谋出路。非常感谢您的时间和回答:D以上是关于Stripe - 当我使用零计划更新订阅时,PaymentIntent 为空的主要内容,如果未能解决你的问题,请参考以下文章