条带意图直接连接

时间:2019-08-29 19:42:48

标签: stripe-payments

我正在尝试通过条带连接开发直接电荷流

根据this文档,他们指出我在客户端上初始化条带时需要添加connected_account_id:

// Set the connected Stripe Account on which the PaymentMethod should be created
var stripe = Stripe('pk_test_xxxx', {
  stripeAccount: "{{CONNECTED_STRIPE_ACCOUNT_ID}}" // ???
});

stripe.createPaymentMethod('card', cardElement, {
  billing_details: {
    name: 'Jenny Rosen',
  },
}).then(function(result) {
  // Handle result.error or result.payment_method
});

还有其他方法可以不涉及客户端吗? 当我使用charges API时,情况并非如此,但现在使用intents似乎必须执行此操作?我需要用一个connected_customer来初始化条带,这似乎很奇怪,因为它可能有超过1个connected_accounts,但是他们希望我在库的初始化中对其进行设置

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

  

要直接从已关联的帐户中扣款,请执行标准创建   使用您平台的机密收取费用或创建PaymentIntent请求   身份验证为关联帐户时输入密钥:

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

stripe.paymentIntents.create({
  payment_method_types: ['card'],
  amount: 1000,
  currency: 'eur',
}, {
  stripe_account: '{{CONNECTED_STRIPE_ACCOUNT_ID}}',
}).then(function(paymentIntent) {
  // asynchronously called
});

这似乎足够了,但是由于我得到no such payment method

我也找到了这小信息-

  

直接在关联的帐户上收费时,您可以提供   使用您平台的帐户或关联帐户创建的令牌   可发布的密钥。 (您也可以使用共享客户创建一个   令牌。)

1 个答案:

答案 0 :(得分:0)

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

您可以在此处采用2种方法。您既可以直接在连接的帐户上创建PaymentMethod,也可以在平台上创建它,然后将其共享到连接的帐户。

前一种方法是最简单的。在客户端收集卡详细信息时,可以使用Elements。您可以直接在stripeAccount选项中使用关联帐户的ID对其进行初始化。那就是您找到的文档,{@ 3}}。

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

出于完整性考虑,Card Tokens可以在平台上正常工作,并且可以无关地连接帐户。首先,这使集成看起来更容易一些,因为您只是使用平台的密钥创建了令牌,然后在连接的帐户上使用了令牌。不过,这仅适用于卡和银行帐户,不适用于其他类型的付款方式,例如SEPA借记或ACH信用转移。这些要求有关接收资金的帐户的详细信息,并且必须始终在正确的帐户上创建。 PaymentMethods通过要求您从一开始就对其进行正确集成来避免此问题。