1 回答
TA贡献1802条经验 获得超4个赞
当使用“仅客户端”(即仅 Javascript)结账时,只能传入已知的 Price 对象,而不是动态价格:
这意味着您无法从前端 Javascript 传递商品的金额。相反,您必须在 Stripe Dashboard 中创建产品 + 价格,然后在按钮代码中引用价格的 ID:
(function() {
var stripe = Stripe('pk_test_6pRNASCoBOKtIshFeQd4XMUh');
var checkoutButton = document.getElementById('checkout-button-price_1H2XkYEESdtcMolQIxkRKapX');
checkoutButton.addEventListener('click', function () {
stripe.redirectToCheckout({
lineItems: [{price: 'price_1H2XkYEESdtcMolQIxkRKapX', quantity: 1}],
mode: 'payment',
successUrl: window.location.protocol + '//proadtraffic.com/success',
cancelUrl: window.location.protocol + '//proadtraffic.com/canceled',
})
.then(function (result) {
if (result.error) {
var displayError = document.getElementById('error-message');
displayError.textContent = result.error.message;
}
});
});
})();
</script>
但是,如果您想要从前端传入的可变金额,您可以做的是创建 1 美元的价格(例如),然后根据您销售的每种产品的需要设置数量。我建议使用允许动态定价的客户端-服务器方法,或者为您销售的商品创建价格并传递价格 ID,如上所示。
与 PayPal 按钮不同,这种方法可以防止客户编辑 Web 表单并给自己打折(例如)——Stripe 只允许在 Checkout 中显示已知价格。
- 1 回答
- 0 关注
- 101 浏览
添加回答
举报