【发布时间】:2016-07-30 22:20:44
【问题描述】:
我正在尝试设置 Stripe Connect 并且需要
- 首先创建客户,向买家收费,
- 然后生成一个令牌,最后
- 使用此令牌向客户收费。
只要买方和卖方不是 Stripe Connect 平台的所有者,此方法就可以正常工作。
即假设以下电子邮件对应于帐户持有人:
admin@admin.com
现在,我们有两个卖家:
seller_1@sellers.com
admin@admin.com
我们有一个买家:
buyer_1@buyers.com
当buyer_1 从seller_1 购买时,我的代码有效。一切顺利,并收取申请费。
当buyer_1 想从admin@admin.com 购买时,问题就出现了。
尽管admin@admin.com 已连接到帐户平台(我经历了与seller_1 相同的过程),但我一直收到错误:
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"
我用下面的教程来save a customer and charge customers:
// 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
}
);
【问题讨论】:
-
这是您正在运行的代码吗?如果是这样,则对 javascript 和 node.js 的工作方式存在一些误解,尤其是在引用异步方法调用方面。
-
我在 nodejs 工作区的服务器上运行它是的。只要卖家的目标账户 ID 不是平台的所有者,它就可以正常工作
-
这是预期的,目标帐户 id 不应该是平台的所有者,如果是这种情况,您不需要制作新令牌
-
您将客户 ID 作为客户,将卡 ID 作为来源
标签: javascript node.js stripe-payments payment stripe-connect