c# - 在 Stripe API 调用中扩展 Source 对象到 StripeBalenceService 不会返回任何客户信息
问题描述
我正在对Stripe.net API进行 ac# 调用,以获取已连接帐户的余额历史记录。我正在尝试扩展余额交易对象以查看费用的来源(例如进行收费的客户),因为我平台上已连接帐户的所有费用都来自具有目标属性的费用对象到已连接帐户。
这是我的代码和扩展源代码的屏幕截图,但我认为我应该看到收费 id 或客户或某处将我介绍给初始客户的东西,但我不...
var balanceService = new StripeBalanceService();
balanceService.ExpandSource = true;
var list = new List <string> () {
"data.source.source_transfer"
};
StripeList <StripeBalanceTransaction> balanceTransactions
= balanceService.List(
new StripeBalanceTransactionListOptions() {
Limit = 20,
Type = "payment",
Expand = list
},
new StripeRequestOptions() {
StripeConnectAccountId = accountId
}
);
foreach(var transaction in balanceTransactions) {
var test = transaction;
}
我觉得我应该看到一个费用 ID(例如 ch_xxx)或一个客户值(它为空)我看到的所有相关性都是一个付款 ID(例如 py_xxx)
解决方案
可以得到charge object( ch_xxx
),只是有点牵扯!
当您使用目的地费用时,费用(ch_xxx
)发生在平台帐户上,然后转帐(tr_xxx
)到连接的帐户。该转账会在关联账户上创建一个支付(py_xxx
),从而产生余额交易(txn_xxx
)。
随着您的代码扩展这些余额交易的来源,您将获得 payment( py_xxx
)。支付相当于一笔费用,所以它有一个source_transfer
字段。您也可以扩展此字段!这将为您提供传输对象(tr_xxx
)。最后,转移有一个source_transaction
字段,可以扩展它以给出原始费用(ch_xxx
)!
将所有这些放在一起,您将需要扩展"data.source.source_transfer.source_transaction"
.
如果您在动态语言中使用 Stripe 库,您可以看到这一点……不幸的是,现在stripe-dotnet
有一个未解决的问题,这意味着您不能直接执行此操作。相反,您需要通过调用Retrieve
ID 上的各种函数来手动进行 API 调用,而不是进行单个扩展。它看起来像这样:
var paymentId = transaction.Source.Id;
var chargeService = new StripeChargeService();
var payment = chargeService.Get(
paymentId,
new StripeRequestOptions()
{
StripeConnectAccountId = accountId
}
);
var transferService = new StripeTransferService();
transferService.ExpandSourceTransaction = true;
var transfer = transferService.Get(payment.SourceTransferId);
var charge = transfer.SourceTransaction;
Console.WriteLine(charge.Id);
推荐阅读
- javascript - 需要通过从 graphql 包中导入来使用 graphqlHTTP 功能,但它不起作用
- reactjs - AppBar 无法使用 material-ui V5 获取主题(V5 中的错误或更改????)
- javascript - 尝试过滤时,setState hook 总是落后 1 步
- javascript - 如何不将空白列转移到主表?
- blazor - 让用户通过按钮更改身份登录的背景?- 布雷泽
- java - 基于另一列数据的Android Java SQLite rowid
- javascript - 如何在 JSX 中格式化日期?
- javascript - 为什么我无法访问 Javascript 中的样式元素?Firefox 控制台错误消息显示为“Null”
- python - 如何在 python 中使用 tkinter 显示带有线程的多视频?
- firebase - 如果地图不存在则添加地图,如果它存在于数组中则增加数量