Stripe payments 带意图的条带连接直接充电

Stripe payments 带意图的条带连接直接充电,stripe-payments,Stripe Payments,我正试图开发一个直接的电荷流与条纹连接 根据文档,他们声明我在客户端初始化条带时需要添加已连接的\u帐户\u id: //设置应在其上创建PaymentMethod的已连接条带帐户 变量条带=条带('pk_测试_xxxx'{ stripeAccount:“{{CONNECTED_STRIPE_ACCOUNT_ID}}”//??”??? }); stripe.createPaymentMethod('card',cardElement{ 账单详情:{ 姓名:“詹妮·罗森”, }, }).然后(函数

我正试图开发一个直接的电荷流与条纹连接

根据文档,他们声明我在客户端初始化条带时需要添加已连接的\u帐户\u id:

//设置应在其上创建PaymentMethod的已连接条带帐户
变量条带=条带('pk_测试_xxxx'{
stripeAccount:“{{CONNECTED_STRIPE_ACCOUNT_ID}}”//??”???
});
stripe.createPaymentMethod('card',cardElement{
账单详情:{
姓名:“詹妮·罗森”,
},
}).然后(函数(结果){
//处理result.error或result.payment\u方法
});
在不涉及客户端的情况下,是否有其他方法可以做到这一点? 当我使用
charges
API时,情况并非如此,但现在有了
intents
似乎我必须这样做?看起来很奇怪,我需要用一个已连接的客户初始化stripe,因为可能有多个已连接的客户,但他们希望我在库的初始化中设置它

在直接收费的文件中,他们甚至没有提到客户端要求,而是直接说:

要直接向连接的帐户收费,请执行标准创建 使用您的平台机密进行收费或创建PaymentIntent请求 作为连接帐户进行身份验证时的密钥:

使用此服务器端代码示例:

stripe.paymentIntents.create({
付款方式类型:[“卡”],
金额:1000,
货币:欧元,
}, {
stripe_帐户:“{{CONNECTED_stripe_帐户_ID}}”,
}).然后(功能(支付意图){
//异步调用
});
似乎这就足够了,但它本身并没有起作用,因为我没有这种付款方式

我还发现了这条信息-

当直接向已连接的帐户收费时,您可以提供 使用您的平台或连接的帐户创建的令牌 可发布的密钥。(您还可以使用共享客户创建 代币。)


必须在使用PaymentMethods的帐户上创建PaymentMethods。如果您是使用Stripe Connect的平台,并且您直接在连接的帐户上创建费用,则PaymentMethod必须存在于该连接的帐户上

这里有两种方法可供选择。您可以直接在连接的帐户上创建PaymentMethod,也可以在平台上创建PaymentMethod,然后将其共享给连接的帐户

前一种方法是最简单的。在客户端收集卡详细信息时,使用元素。您可以直接在
stripeAccount
选项中使用连接帐户的id对其进行初始化。那是你找到的活的医生

否则,您可以在平台上创建PaymentMethod。然后,在服务器端,创建PaymentMethod时,您可以将其克隆到连接的帐户。这就像从现有的PaymentMethod创建一个新的PaymentMethod一样简单,您不需要他们的卡详细信息。这是有案可查的。请注意,这仅适用于卡付款方式

为了完整性起见,卡代币在平台上工作,与账户的连接也不受影响。这使得集成一开始看起来更容易一些,因为您只是使用平台的密钥创建了令牌,然后在连接的帐户上使用它。但这只适用于卡和银行账户,不能用于其他类型的支付方式,例如SEPA借记或ACH贷记转账。这些需要关于接收资金的账户的详细信息,并且必须始终在正确的账户上创建。PaymentMethods允许您通过要求您从一开始就正确地集成它来避免这个问题。

至于第二个选项(共享paymentMethod)——我已经尝试过了,但它不适用于带有3D secure的SCA的情况,因为在服务器上,我得到了一个秘密,我将其传递给客户端,它失败了,“没有这样的支付意图”。因为还有另一个步骤,所以我唯一的解决方案是在客户端初始化stripe时传递
stripeAccount