我正在建立一个直接收费的标准条带连接帐户。
这对我来说使用带令牌的charges api对我来说是完美的,但对我而言,按照欧盟的要求使用付款意图api对我来说不起作用。
下面的代码在获取客户端机密方面起作用。
axios.post(`${process.env.REACT_APP_API}/paymentIntent`, stripeData).then(res => {console.log('paymentIntent res', res.data)
let clientSecret = res.data.clientSecret
this.props.stripe.createToken({}).then(res => {
console.log('stripe token', res)
if (!res.token) {
this.setState({
message:
"Invalid Credit Card. Your tickets have not been booked. You have not been charged"
})
}
else{
this.props.stripe.confirmCardPayment(
clientSecret,
{
payment_method: {
card: {
token: res.token.id
}
}
}
).then( res => {console.log(res)})
}
})
}
但是我在控制台中遇到以下错误:
Failed to load resource: the server responded with a status of 404 ()
error:
code: "resource_missing"
doc_url: "https://stripe.com/docs/error-codes/resource-missing"
message: "No such payment_intent: pi_1FnrwXLkWxxxxxxxxxxxxxxx"
param: "intent"
type: "invalid_request_error"
有些事情使我感到困惑。
pi_1FnrwXLkWxxxxxxxxxxxxxxx_secret_pGBi46eAzWxxxxxxxxxxxxxxx
从错误消息来看,它似乎仅一部分被发送到Stripe api。这是引起错误的原因吗?
在前端使用以下代码建议使用两个条纹答案。
var stripe = Stripe(STRIPE_PUBLIC_KEY,{stripeAccount:“ {{connected_account}}”})
如果这是正确的,我该如何修改此代码以进行反应以及如何将其放在组件中?像现在这样,这使我犯了一个错误。
Ref1:Code=50 “No such payment_intent” when confirm payment intent for stripe
Ref2:Stripe Connect PaymentIntent error: No such payment_intent
答案 0 :(得分:0)
我已经找到了这些问题的答案(在Stripe的帮助下)
Q1。这不是问题
Q3。请勿将令牌与Payment Intents API配合使用。
Q2。不要使用文档中的代码。使用
<StripeProvider
apiKey={process.env.REACT_APP_API_STRIPE_PUBLISH}
stripeAccount="{{ connected_account }}">
当我对帐户进行硬编码时,这对我有用,但是当我从后端获取关联的帐户ID并保存在State中时,此方法不起作用。我通过有条件地租借该组件来使其工作。我将连接状态初始化为''
,并使用了以下代码:
{this.state.userEvent.organiser.stripeAccountID !== '' &&
<StripeProvider
apiKey={process.env.REACT_APP_API_STRIPE_PUBLISH}
stripeAccount={this.state.userEvent.organiser.stripeAccountID}>
<Elements>
<CheckoutForm
total={this.displayTotal()}
applicationFee={this.displayAdminFee()}
currency={this.state.userEvent.currency}
eventTitle={this.state.userEvent.title}
purchaser={this.state.purchaser}
userEvent={this.state.userEvent}
numTicketsSought={this.state.userEvent.numTicketsSought}
/>
</Elements>
</StripeProvider>
}