Проблема с добавлением источника кредитной карты к существующему клиенту - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь добавить новую кредитную карту существующему клиенту, но получаю эту ошибку:

Получен неизвестный параметр: карта

Я выясняю, как проверитьесли карта уже существует, используя StripeTokenService для получения отпечатка карты, но я застрял, пытаясь добавить эту карту к клиенту.

Мой код выглядит следующим образом:

var sourceService = new Stripe.StripeSourceService();

// Get customer with current payment source.
var stripeCustomer = customerService.Get(stripeCustomerWithAccount.Id, new Stripe.StripeRequestOptions { ApiKey = ConfigurationManager.AppSettings["StripeSecretKey"] });

// Set Stripe Customer Id and Stripe Token options.
var tokenService = new Stripe.StripeTokenService();
var stripeToken = tokenService.Get(tokenId, new Stripe.StripeRequestOptions { ApiKey = ConfigurationManager.AppSettings["StripeSecretKey"] });

// Check if credit card already exists.
if (!CreditCardExists(stripeCustomer, stripeToken))
{
    // Create new credit card.
    var sourceOptions = new StripeNet.StripeSourceCreateOptions()
    {
        Customer = stripeCustomer.Id,
        Card = new StripeNet.StripeCreditCardOptions
        {
            TokenId = stripeToken.StripeCard.Id 
        }                            
    };

    var source = sourceService.Create(sourceOptions, new Stripe.StripeRequestOptions { ApiKey = ConfigurationManager.AppSettings["StripeSecretKey"] });
}

1 Ответ

0 голосов
/ 19 сентября 2018

Хорошо, я разобрался, как и поделюсь своим ответом:

if (!CreditCardExists(stripeCustomer, stripeToken))
{ 
    var creditCardService = new StripeNet.StripeCardService();
    var creditCardOptions = new StripeNet.StripeCardCreateOptions { SourceToken = tokenId };

    var creditCard = creditCardService.Create(stripeCustomer.Id, creditCardOptions, new StripeNet.StripeRequestOptions { ApiKey = ConfigurationManager.AppSettings["StripeSecretKey"] });

    // The only way I found to get customer with all sources...
    stripeCustomer = customerService.Get(stripeCustomerWithAccount.Id, new StripeNet.StripeRequestOptions { ApiKey = ConfigurationManager.AppSettings["StripeSecretKey"] });
}
...