C#: установить способ оплаты по умолчанию в полосе

Я новичок в полосе, как мы можем установить способ оплаты по умолчанию в полосе.

И можем ли мы передать cardId/sourceId, чтобы взимать плату с клиента вместе с customerId.

Код:-

private static async Task<string> ChargeCustomer(string customerId)
{
    return await System.Threading.Tasks.Task.Run(() =>
    {
        var myCharge = new StripeChargeCreateOptions
        {
            Amount = 50,
            Currency = "gbp",
            Description = "Charge for property sign and postage",
            CustomerId = customerId
        };

        var chargeService = new StripeChargeService();
        var stripeCharge = chargeService.Create(myCharge);

        return stripeCharge.Id;
    });
}

И еще 1 вопрос, как получить список платежей, я использую код ниже, но получаю исключение (ошибка конвертации):-

  private IEnumerable<StripeCharge> GetChargeList()
    {
        var chargeService = new StripeChargeService();
        return chargeService.List();
    }

2 ответа

Решение

Мы можем передать cardId/BankAccountId/TokenId/SourceId в свойстве SourceTokenOrExistingSourceId StripeChargeCreateOptions,

private static async Task<string> ChargeCustomer(string customerId, string cardId)
        {
            try
            {
                return await System.Threading.Tasks.Task.Run(() =>
                {
                    var myCharge = new StripeChargeCreateOptions
                    {
                        Amount = 50,
                        Currency = "gbp",
                        Description = "Charge for property sign and postage",
                        CustomerId = customerId,
                        SourceTokenOrExistingSourceId = cardId
                    };

                    var chargeService = new StripeChargeService();
                    var stripeCharge = chargeService.Create(myCharge);

                    return stripeCharge.Id;
                });
            }
            catch(Exception ex)
            {
                return "";
            }
        }

Чтобы установить / изменить способ оплаты по умолчанию:-

 public void ChangeDefaultPayment(string customerId, string sourceId)
    {
        var myCustomer = new StripeCustomerUpdateOptions();
        myCustomer.DefaultSource = sourceId;
        var customerService = new StripeCustomerService();
        StripeCustomer stripeCustomer = customerService.Update(customerId, myCustomer);
    }

Все еще ищу, как получить список обвинений.

Вот что я в итоге сделал. Не уверен, почему Stripe Checkout не установил карту для настройки подписки по умолчанию. В любом случае, это срабатывает от веб-хука payment_intent.succeeded. Конечно, есть способ получше, но...

    var customerService = new CustomerService(Configs.STRIPE_SECRET_KEY);
    var c = customerService.Get(pi.CustomerId);

    if (!string.IsNullOrEmpty(c.InvoiceSettings.DefaultPaymentMethodId)) {
      status = "already has default payment method, no action";
      hsc = HttpStatusCode.OK;
      return;
    }


    var paymentMethodService = new PaymentMethodService(Configs.STRIPE_SECRET_KEY);
    var lopm = paymentMethodService.ListAutoPaging(options: new PaymentMethodListOptions {
      CustomerId = pi.CustomerId,
      Type = "card"
    });

    if (!lopm.Any()) {
      status = "customer has no payment methods";
      hsc = HttpStatusCode.BadRequest;
      return;
    }
    var pm = lopm.FirstOrDefault();
    customerService.Update(pi.CustomerId, options: new CustomerUpdateOptions {
      InvoiceSettings = new CustomerInvoiceSettingsOptions {
        DefaultPaymentMethodId = pm.Id
      }
    });

    hsc = HttpStatusCode.OK;
    return;
internal static IEnumerable<StripeCharge> GetChargeList()
        {
            var chargeService = new StripeChargeService();
            return chargeService.List();
        }

это работает нормально для меня. Пожалуйста, убедитесь, что вы установили dll "Newtonsoft.Json" в свой проект, так как у меня была эта ошибка, когда я начал полосовую оплату. Вот ответ, полученный от сервера полосы.

Другие вопросы по тегам