Ошибка при попытке выплатить управляемую учетную запись

Попытка использовать управляемые счета для выплат. Обычно с пользователя взимается плата, и деньги отправляются на управляемую учетную запись, а не на учетную запись платформы. Я использую разделение клиентов. Я использую код внизу этой ссылки https://stripe.com/docs/connect/shared-customers. После получения токена я пытаюсь выполнить однократную зарядку. Я получаю сообщение об ошибке «Информация о карте не найдена», но я передаю cardId при создании токена.

Ошибка: message: "Could not find payment information"

Stripe.tokens.create(
 { customer: request.params.customerId, card: request.params.cardId },
 { stripe_account: 'acct_xyz' }, // id of the connected account
  function(err, token) {

  Stripe.charges.create(
 {
amount: 1000, // amount in cents
currency: "usd",
source: token,
description: "Example charge",
application_fee: 123 // amount in cents
},
function(err, charge) {
console.log(err);
 });
});

person anonymous    schedule 11.09.2016    source источник


Ответы (1)


Это работает для вас? Ключевые отличия здесь:

  1. Я включаю { stripe_account: 'acct_xyz' } в запрос stripe.charges.create, а также это должно произойти в самой подключенной учетной записи, если используются общие клиенты. https://stripe.com/docs/connect/payments-fees#charging-directly

  2. Вместо token как source я использую только атрибут id объекта токена (например, tok_xxxyyyzzz).

Образец:

// id of connected account you want to create customer on, charge
var connectedAccountId = "acct_16MNx0I5dd9AuSl3";

// id of customer and card you want to create a token from

var platformCustomerId = "cus_8vEdBa4rQTGond";
var platformCustomerCardId = "card_18dOAcFwTuOiiF4uwtDe2Nip";

var stripe = require("stripe")(
  "sk_test_xxxyyyyzzz"
);

    // create a token using a customer and card on the Platform account
    stripe.tokens.create(
      {customer: platformCustomerId, card: platformCustomerCardId },
      {stripe_account: connectedAccountId},
      function(err, token) {
        if (err)
          throw (err);

            stripe.charges.create({
              amount: 4444,
              currency: "usd",
              source: token.id,
              description: "Charge on a connected account",
              application_fee: 1111
            },
            {stripe_account: connectedAccountId},
            function(err, charge) {
              if (err)
                throw (err);
              console.log(charge);
            });
        });

В качестве альтернативы, как вы сказали, что используете управляемые учетные записи, вы можете рассмотреть возможность взимания платы через платформу, которая позволяет вам полностью избежать потока общих клиентов, см. Здесь образец, https://stripe

person duck    schedule 11.09.2016
comment
Идентификатор - это то, что сделало это для меня. Спасибо друг :) - person Rachael Dawn; 14.05.2017