public void Should_Upgrade_Subscription() { UpgradeSubscriptionRequest request = new UpgradeSubscriptionRequest { Locale = Locale.TR.ToString(), ConversationId = "123456789", SubscriptionReferenceCode = "subscriptionReferenceCode", NewPricingPlanReferenceCode = "newPricingPlanReferenceCode", UseTrial = true, ResetRecurrenceCount = true, UpgradePeriod = SubscriptionUpgradePeriod.NOW.ToString() }; IyzipayResourceV2 response = Subscription.Upgrade(request, options); PrintResponse(response); Assert.AreEqual(Status.SUCCESS.ToString(), response.Status); Assert.IsNotNull(response.SystemTime); Assert.Null(response.ErrorMessage); }
public void Should_Upgrade_Subscription() { string randomString = DateTime.Now.ToString("yyyyMMddHHmmssfff"); CreateProductRequest createProductRequest = new CreateProductRequest { Description = "product-description", Locale = Locale.TR.ToString(), Name = $"product-name-{randomString}", ConversationId = "123456789" }; ResponseData <ProductResource> createProductResponse = Product.Create(createProductRequest, _options); CreatePlanRequest createPlanRequest = new CreatePlanRequest() { Locale = Locale.TR.ToString(), Name = $"plan-name-{randomString}", ConversationId = "123456789", TrialPeriodDays = 3, Price = "5.23", CurrencyCode = Currency.TRY.ToString(), PaymentInterval = PaymentInterval.WEEKLY.ToString(), RecurrenceCount = 12, PaymentIntervalCount = 1, PlanPaymentType = PlanPaymentType.RECURRING.ToString(), ProductReferenceCode = createProductResponse.Data.ReferenceCode }; PlanResource planResource = Plan.Create(createPlanRequest, _options).Data; SubscriptionInitializeRequest subscriptionInitializeRequest = new SubscriptionInitializeRequest { Locale = Locale.TR.ToString(), Customer = new CheckoutFormCustomer { Email = $"iyzico-{randomString}@iyzico.com", Name = "customer-name", Surname = "customer-surname", BillingAddress = new Address { City = "İstanbul", Country = "Türkiye", Description = "billing-address-description", ContactName = "billing-contact-name", ZipCode = "010101" }, ShippingAddress = new Address { City = "İstanbul", Country = "Türkiye", Description = "shipping-address-description", ContactName = "shipping-contact-name", ZipCode = "010102" }, GsmNumber = "+905350000000", IdentityNumber = "55555555555" }, PaymentCard = new CardInfo { CardNumber = "5528790000000008", CardHolderName = "iyzico", ExpireMonth = "12", ExpireYear = "2029", Cvc = "123", RegisterConsumerCard = true }, ConversationId = "123456789", PricingPlanReferenceCode = planResource.ReferenceCode, SubscriptionInitialStatus = SubscriptionStatus.ACTIVE.ToString() }; ResponseData <SubscriptionCreatedResource> initializeResponse = Subscription.Initialize(subscriptionInitializeRequest, _options); CreatePlanRequest newPlanRequest = new CreatePlanRequest() { Locale = Locale.TR.ToString(), Name = $"new-plan-name-{randomString}", ConversationId = "123456789", TrialPeriodDays = 2, Price = "3.23", CurrencyCode = Currency.TRY.ToString(), PaymentInterval = PaymentInterval.WEEKLY.ToString(), RecurrenceCount = 2, PaymentIntervalCount = 1, PlanPaymentType = PlanPaymentType.RECURRING.ToString(), ProductReferenceCode = createProductResponse.Data.ReferenceCode }; PlanResource newPlanResource = Plan.Create(newPlanRequest, _options).Data; UpgradeSubscriptionRequest request = new UpgradeSubscriptionRequest { Locale = Locale.TR.ToString(), ConversationId = "123456789", SubscriptionReferenceCode = initializeResponse.Data.ReferenceCode, NewPricingPlanReferenceCode = newPlanResource.ReferenceCode, UseTrial = true, ResetRecurrenceCount = true, UpgradePeriod = SubscriptionUpgradePeriod.NOW.ToString() }; IyzipayResourceV2 response = Subscription.Upgrade(request, _options); PrintResponse(response); Assert.AreEqual(Status.SUCCESS.ToString(), response.Status); Assert.IsNotNull(response.SystemTime); Assert.Null(response.ErrorMessage); }
public static IyzipayResourceV2 Upgrade(UpgradeSubscriptionRequest request, Options options) { string uri = $"{options.BaseUrl}/v2/subscription/subscriptions/{request.SubscriptionReferenceCode}/upgrade"; return(RestHttpClientV2.Create().Post <IyzipayResourceV2>(uri, GetHttpHeadersWithRequestBody(request, uri, options), request)); }