我在我的API中使用了条带连接,我想更新现有的paymentIntent。 API的官方库提供了这些方法。
public PaymentIntent Get(string paymentIntentId,
PaymentIntentGetOptions options = null, RequestOptions requestOptions = null)
public PaymentIntent Update(string paymentIntentId,
PaymentIntentUpdateOptions options, RequestOptions requestOptions = null);
我唯一想在资源上更新的是目的地,因此我开始这样做,直到意识到没有简单的方法:
var paymentIntentService = new PaymentIntentService();
var paymentIntent = paymentIntentService.Get(transaction.ExternalTransactionId);
if (null != destinationStripeAccount)
{
paymentIntent.TransferData.DestinationId = destinationStripeAccount.AccountId;
}
//This takes in a PaymentIntentUpdateOptions instead of a paymentIntent WTF
paymentIntentService.Update(paymentIntent.Id, new PaymentIntentUpdateOptions { });
PaymentIntent不是PaymentIntentUpdate选项,因此我需要将所有值映射到另一个。我不希望不需要安装其他依赖项,例如AutoMapper,而手动映射字段将很麻烦。
有人知道是否有一种仅更新目的地的方法,还是一种简单的更新付款方式的方法?
答案 0 :(得分:2)
由于根据文档,大多数成员是可选的,因此我相信您只需要提供需要更改/更新的选项对象即可。
var paymentIntentService = new PaymentIntentService();
var paymentIntent = paymentIntentService.Get(transaction.ExternalTransactionId);
if (null != destinationStripeAccount) {
var options = new PaymentIntentUpdateOptions() {
TransferData = new PaymentIntentTransferDataOptions {
Destination = destinationStripeAccount.AccountId
}
};
paymentIntentService.Update(paymentIntent.Id, options);
}