Stripe Connect账户获取Payout报‘no such payout’异常的技术咨询
问题:获取Connect账户Payout对象失败的解决方法
我收到了某一Connect账户的payout.paid webhook通知,希望获取对应的payout对象并展开balance_transaction和destination属性。
我在控制器中编写了如下测试代码以获取该payout:
StripeConfiguration.ApiKey = _config["StripeSettings:SecretKey"]; var service = new PayoutService(); Payout payout = service.Get("po_1Mip8FQfrEXkPBakiZX3dTD8");
但收到异常提示:no such payout po_1Mip8FQfrEXkPBakiZX3dTD8。
疑问:当前方式是否仅查询平台账户的payout?若仅查询平台账户,该如何获取Connect账户的payout?
回答
- 是的,当前代码仅查询平台自身账户的Payout记录。未指定目标Connect账户ID时,Stripe默认使用平台密钥操作平台账户的数据,自然找不到属于Connect账户的Payout。
- 要获取Connect账户的Payout,需在调用
Get方法时通过RequestOptions传入目标Connect账户的ID(格式为acct_xxx),同时确保平台密钥拥有操作该Connect账户的权限。
修改后的基础查询代码:
StripeConfiguration.ApiKey = _config["StripeSettings:SecretKey"]; var service = new PayoutService(); // 配置目标Connect账户ID var requestOptions = new RequestOptions { StripeAccount = "acct_XXXXXX" // 替换为实际的Connect账户ID }; // 携带RequestOptions调用Get方法 Payout payout = service.Get("po_1Mip8FQfrEXkPBakiZX3dTD8", requestOptions);
如果需要展开balance_transaction和destination属性,可添加Expand参数:
StripeConfiguration.ApiKey = _config["StripeSettings:SecretKey"]; var service = new PayoutService(); var getOptions = new PayoutGetOptions { Expand = new List<string> { "balance_transaction", "destination" } }; var requestOptions = new RequestOptions { StripeAccount = "acct_XXXXXX" // 替换为实际的Connect账户ID }; Payout payout = service.Get("po_1Mip8FQfrEXkPBakiZX3dTD8", getOptions, requestOptions);
内容的提问来源于stack exchange,提问作者chuckd
相关产品推荐
相关产品推荐

