我目前正在尝试使用服务器端条带api创建费用 .
但我面临一个问题;我正在使用两种方式来处理这个问题:
-
用户可以使用stripe元素支付=>因此我使用生成的令牌('tok_somethingId')来实现这个元素
-
或者,如果用户已经添加了一些卡,则可以在列表中选择它们=>服务器然后使用卡ID('card_somethingId')和客户ID('cus_smoethingId')
我想知道是否有办法生成具有卡ID和客户ID的令牌,以便使用此令牌来创建费用,而不是使用卡ID和客户ID来向用户收费 .
我已经尝试了https://stripe.com/docs/api/node#create_card_token但它似乎不起作用 .
stripe.tokens.create({
card: cardId,
customer: customerId
}, function(err, token) {
// do smthg here with the token
});
这给了我这个错误信息
3 回答
您无法为现有卡创建新令牌,因为这没有意义 . 该卡已保存在客户手中,您可以对其进行充电 .
这里最简单的解决方案可能是反向并在您获得令牌
tok_XXXX
时将卡保存在客户身上 . 这样,您始终通过将customer
参数作为客户IDcus_XXXX
和source
参数作为卡IDcard_XXXX
传递来为卡充电 .否则,您需要动态处理此问题,以便了解您是获取令牌(tok_XXXX)还是卡ID(card_XXXX)并根据该决定传递不同的参数 . 您的前端代码应该知道您最终处于哪种情况 .
如果您使用存储的卡进行付款,则无需获取令牌,
1-在条带上创建客户
当您创建客户时,您就拥有了customer_id
2 - 您可以通过客户ID和卡令牌在条带上添加卡
现在你有这样的卡ID
3-您可以在客户上存储多张卡片,也可以进行检索
4 - 您可以通过存储在客户帐户上的卡片卡付款
这里我们没有使用'source'参数,因为它是在我们通过卡令牌付款时使用的 .
https://api.stripe.com/v1/charges只传递正文中的值,
[{ “键”: “量”, “值”: “1000”, “说明”: “”},{ “键”: “货币”, “值”: “USD”, “说明”: “”} ,{“key”:“customer”,“value”:“cus_ID”,“description”:“”},{“key”:“description”,“value”:“\”收取jenny.rosen@example的费用 . COM \ “”, “说明”: “”},{ “键”: “卡”, “值”: “card_id的”, “描述”: “”}]
这对我有用