Stripe Connect API Update PaymentIntent - PullRequest
1 голос
/ 11 июля 2019

Я использую Stripe Connect в своем 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, и сопоставление полей вручную было бы хлопотом.

Кто-нибудь знает, есть ли способ просто обновить адресата или простой способ обновления платежного намерения?

1 Ответ

2 голосов
/ 11 июля 2019

Поскольку в соответствии с документацией большинство членов являются необязательными, я считаю, что вам нужно предоставить только то, что необходимо изменить / обновить для объекта параметров.

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);
}

Ссылка PaymentIntentUpdateOptions.TransferData (GitHub)

...