Неверный токен ошибки при создании нового источника Stripe - PullRequest
0 голосов
/ 25 ноября 2018

Использование элементов Stripe и Stripe.net.Я получаю токен, создаю клиента и источник и заряжаю его, используя следующий код - работает нормально

            StripeConfiguration.SetApiKey(stripeKey);
            var charges = new StripeChargeService();
            var charge = charges.Create(new StripeChargeCreateOptions
            {
                Amount = thisCharge.Amount,
                Currency = "usd",
                Description = thisCharge.ProductDesc,
                StatementDescriptor = thisCharge.ProductDesc,
                //SourceTokenOrExistingSourceId = source.Id,

                ReceiptEmail = thisCharge.EmailAddress,
                CustomerId = thisCharge.StripeCustomerID,
                Metadata = new Dictionary<String, String>()
                    {
                        { "Name", thisCharge.CardHolderName }, { "Email",thisCharge.EmailAddress }
                    }
            });

Затем я пытаюсь произвести повторную зарядку, используя другую карту (5555 5555 5555 4444) с тем же клиентом, ноочевидно, я что-то упускаю.

с использованием этого кода

    static StripeSource NewSource(string stripeKey, Charge  charge)
    {
        StripeConfiguration.SetApiKey(stripeKey);
        var sourceOptions = new StripeSourceCreateOptions
        {
            Type = StripeSourceType.Card,
            Currency = "usd",
            Amount = charge.Amount,
            Token = charge.Token,              

            Owner = new StripeSourceOwner
            {
                Email = charge.EmailAddress,
                Name = charge.CardHolderName
            }
        };
        var sourceService = new StripeSourceService();
        StripeSource source = sourceService.Create(sourceOptions);
        return source;
    }

Но я получаю эту ошибку:

Неверный идентификатор токена: src _....

Если я пропущу добавление нового источника, то заряд пройдет, но против исходного источника.

Так что, очевидно, что-то упущено ... любая помощь приветствуется.

1 Ответ

0 голосов
/ 26 ноября 2018

Дух с моей стороны, но в случае, если кто-то еще имеет такую ​​же проблему.

Когда вы отправляете форму элементов, она возвращает токен, в данном случае исходный токен "src_".Таким образом, вы не создаете новый источник, вы просто назначаете его существующему клиенту.

            StripeConfiguration.SetApiKey(stripeKey);
            var options = new StripeCustomerUpdateOptions
            {
                SourceToken = charge.Token,
            };

            var service = new StripeCustomerService();
            StripeCustomer customer = service.Update(charge.StripeCustomerID, options);
...