【发布时间】:2020-01-07 01:05:04
【问题描述】:
我的应用通过 Stripe 使用订阅。
我想创建一个标准的“帐户”页面,其中将列出客户当前的卡信息(如“万事达卡”和卡号的最后 4 位),并为客户提供更新该信息的选项。
我被困在第一块——取回当前的卡片信息。为此,我需要当前的 card_id。我已经尝试过“listSources”方法,但这会返回卡信息应该是的空白数据。我需要做什么才能获得该卡信息?
这是我尝试过的:
(我正在使用 Node,并运行此服务器端)
我找到的最接近的方法是here:
var stripe = require('stripe')(STRIPE_TOKEN);
stripe.customers.listSources(
CUSTOMER_ID,
{object: 'bank_account', limit: 3},
function(err, cards) {
// asynchronously called
}
);
这会返回信息(没有错误),但文档说此方法应返回包含卡片 ID 的卡片数据数组。在测试中,数据数组总是返回空。
我正在使用具有有效订阅的客户 ID 和一张我可以在我的 Stripe 仪表板上看到的卡片进行测试。
为什么返回的数据数组是空的?
注意:还有一个retrieve source method,它应该返回卡的详细信息,但是这种方法需要你有你想要信息的卡的ID,这就是我现在无法得到的。
【问题讨论】:
-
您确定您的应用使用卡片/资源,而不是更新的 PaymentMethods Stripe 走向?如果您最近编写了集成,很可能您使用的是较新的 API。
-
这真的很有帮助。我认为这确实是问题所在。当我运行 stripe.paymentMethods.list... 时,它会返回有关付款方式的信息,包括卡类型和数字的最后 4 位。所以我猜这是我需要使用的。谢谢!
-
要更新向客户收费的卡,最佳做法是使用“stripe.paymentMethods.update”功能吗?
-
您只能在 PaymentMethod 上更新地址和到期日期。应通过新 PaymentMethod 记录处理不同的卡号。
-
啊,明白了。我可以使用“paymentsMethods.list”方法来显示付款方式(最近输入的首先出现,我假设这将是我显示的卡),然后,如果客户单击“更改计费方式”按钮,然后我得到他们的新详细信息并运行 paymentMethods.create 函数。
标签: stripe-payments