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
- ta betalt av köparen genom att först skapa en kund,
- sedan generera en token och slutligen
- 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.