我试图获取与转移相关的所有费用ID。
var json = new StreamReader(context.Request.InputStream).ReadToEnd();
var stripeEvent = StripeEventUtility.ParseEvent(json);
StripeTransfer stripeTransfer;
switch (stripeEvent.Type)
{
case "transfer.created":
stripeTransfer = Stripe.Mapper<StripeTransfer>.MapFromJson(stripeEvent.Data.Object.ToString());
var transferId = stripeTransfer.Id;
stripeTransfer = _stripeManager.GetTransfer(transferId);
foreach (var charge in stripeEvent.Data.Object["transactions"])
{
}
_stripeManager.ProcessTransfer(stripeTransfer);
break;
在visual studio的即时窗口中,stripeEvent.Data.Object["transactions"]
显示了我想要的数据,因此我知道json正在被正确吸入。这些交易是收费的集合,它们匹配我的.net StripeCharge对象。我无法弄清楚如何迭代交易...我真正需要的是每个交易的ID。想看看&#34;交易&#34;作为C#IEnumerable对象。
(有问题的json链接在这篇文章的顶部)让我知道是否需要更多信息。
我发现具体项目在["transactions"]["data"][0]["id"]
下,但可能不止一个,所以仍然在研究如何将它们拿出并投下它们......想想我已经关闭但是似乎应该有一种更优雅的方式。
EDIT,
感谢Andrew,所以即使我拥有所有的费用数据,它也是传入的数据。所以我要做的就是使用事件来获取id,然后调用从我自己的端获取充电对象以防止任何事件欺骗。所以这意味着我不必担心在这一点上施放。这是我的解决方案,请随时告知是否有更好的方法来做到这一点
for (int i = 0; i < Int32.Parse(stripeEvent.Data.Object["transactions"]["total_count"].ToString()); i++)
{
string chargeId = stripeEvent.Data.Object["transactions"]["data"][i]["id"].ToString();
// do stuff with it
}
答案 0 :(得分:0)
仅为完整性: 事务下的数据看起来像一个数组,所以应该能够索引它们。
如果您将来需要访问任何其他字段,您可以构建c#对象,但是如果您只需要id,那么您已经在做的webhook第三方舞会可能不值得。