javascript - Stripe Connect Charge - Måste autentisera som ett anslutet konto för att kunna använda kundparametern


Jag försöker att konfigurera Stripe Connect och behöver

  1. ta betalt av köparen genom att först skapa en kund,
  2. sedan generera en token och slutligen
  3. debiter kunden med denna token.

Detta fungerar bra så länge köparen och säljaren inte är ägare av Stripe Connect-plattformen.

D.v.s. låt oss anta att följande e-post motsvarar kontoinnehavaren:

[email 

Nu har vi två säljare:

[email 
[email 

Och vi har en köpare:

[email 

Min kod fungerar när buyer_1 köper från seller_1. Allt går bra och en ansökningsavgift tas ut.

Problemet uppstår dock när buyer_1 vill köpa från [email . Även om [email  är ansluten till kontoplattformen (jag går igenom samma process som för seller_1), fortsätter jag att få felet:

message: "Must authenticate as a connected account to be able to use customer parameter. See https://stripe.com/docs/api#create_card_token for more details."
param: "customer"
raw: Object
rawType: "invalid_request_error"
requestId: "req_8EtIue0F4JWFmQ"
stack: 400
type: "StripeInvalidRequestError"

Jag använder följande handledning för att spara en kund och ta betalt av kunder:

// store
// Set your secret key: remember to change this to your live secret key in production
// See your keys here https://dashboard.stripe.com/account/apikeys
var stripe = require("stripe")("SECRETKEY");

// (Assuming you're using express - expressjs.com)
// Get the credit card details submitted by the form
var tokenID = request.body.stripeToken;

// Create a Customer
stripe.customers.create({
  source: tokenID,
  description: "Example customer"
}, function(err, customer) {

});

// Create token
// Create a Token from the existing customer on the platform's account
stripe.tokens.create(
  { customer: CUSTOMER_ID, card: CARD_ID },
  { stripe_account: CONNECTED_STRIPE_ACCOUNT_ID }, // id of the connected account
  function(err, token) {
    // callback
  }
);

Svar #1

Jag vet att den här frågan inte är ny, men jag har stött på samma problem flera gånger under mina testningar i utvecklingen. Problemet åtgärdades när jag gjorde en db:reset eller tog bort användaren (kundkontot) och auktoriserade om.

Det visade sig att jag hade duplicerade Connect-konton för samma användare, för gamla planer och api-nyckeln var gammal.

Eftersom jag höll på med utveckling och testning, tyckte jag också att det var användbart att rensa testdata från Stripe, på instrumentpanelen > affärsinställningar > data > Radera all testdata

Hoppas det hjälper.

Svar #2

Samma sak hände mig. Det är lite vilseledande eftersom Stripe låter dig koppla ditt konto direkt till samma konto i Inställningarna (där det står "testa OAuth-flödet"), som om ett enda konto agerar både som plattform och det anslutna kontot. Men när du försöker skapa avgifter eller kunder på det anslutna kontot får du ovanstående fel.