Esempio n. 1
0
        public async Task <GetMerchantPaymentMethodsResponse> GetMerchantPaymentMethods(
            string clientRequestId,
            string currencyCode           = null,
            string countryCode            = null,
            string languageCode           = null,
            string type                   = null,
            string userId                 = null,
            DeviceDetails deviceDetails   = null,
            string rebillingType          = null,
            string authenticationTypeOnly = null,
            SubMerchant subMerchant       = null,
            Addendums addendums           = null)
        {
            var request = new GetMerchantPaymentMethodsRequest(
                merchantInfo,
                sessionToken,
                clientRequestId)
            {
                CurrencyCode           = currencyCode,
                CountryCode            = countryCode,
                LanguageCode           = languageCode,
                Type                   = type,
                UserId                 = userId,
                DeviceDetails          = deviceDetails,
                RebillingType          = rebillingType,
                AuthenticationTypeOnly = authenticationTypeOnly,
                SubMerchant            = subMerchant,
                Addendums              = addendums
            };

            return(await safechargeRequestExecutor.GetMerchantPaymentMethods(request));
        }
        public async Task Should_Approve_Payment_Item()
        {
            CreateSubMerchantRequest request = CreateSubMerchantRequestBuilder.Create()
                                               .PersonalSubMerchantRequest()
                                               .Build();

            SubMerchant subMerchant = await SubMerchant.CreateAsync(request, Options);

            CreatePaymentRequest paymentRequest = CreatePaymentRequestBuilder.Create()
                                                  .MarketplacePayment(subMerchant.SubMerchantKey)
                                                  .Build();

            Payment payment = await Payment.CreateAsync(paymentRequest, Options);

            string paymentTransactionId = payment.PaymentItems[0].PaymentTransactionId;

            CreateApprovalRequest approvalRequest = CreateApprovalRequestBuilder.Create()
                                                    .PaymentTransactionId(paymentTransactionId)
                                                    .Build();

            Approval approval = await Approval.CreateAsync(approvalRequest, Options);

            Assert.AreEqual(paymentTransactionId, approval.PaymentTransactionId);
            Assert.AreEqual(Locale.TR.ToString(), payment.Locale);
            Assert.AreEqual(Status.SUCCESS.ToString(), payment.Status);
            Assert.NotNull(payment.SystemTime);
            Assert.Null(payment.ErrorCode);
            Assert.Null(payment.ErrorMessage);
            Assert.Null(payment.ErrorGroup);
        }
Esempio n. 3
0
        public void Should_Disapprove_Payment()
        {
            CreateSubMerchantRequest request = CreateSubMerchantRequestBuilder.Create()
                                               .PersonalSubMerchantRequest()
                                               .Build();

            SubMerchant subMerchant = SubMerchant.Create(request, _options);

            CreatePaymentRequest paymentRequest = CreatePaymentRequestBuilder.Create()
                                                  .MarketplacePayment(subMerchant.SubMerchantKey)
                                                  .Build();

            Payment payment = Payment.Create(paymentRequest, _options);

            String paymentTransactionId = payment.PaymentItems[0].PaymentTransactionId;

            CreateApprovalRequest approvalRequest = CreateApprovalRequestBuilder.Create()
                                                    .PaymentTransactionId(paymentTransactionId)
                                                    .Build();

            Approval.Create(approvalRequest, _options);

            Disapproval disapproval = Disapproval.Create(approvalRequest, _options);

            PrintResponse(disapproval);

            Assert.AreEqual(paymentTransactionId, disapproval.PaymentTransactionId);
            Assert.AreEqual(Status.SUCCESS.ToString(), disapproval.Status);
            Assert.AreEqual(Locale.TR.ToString(), disapproval.Locale);
            Assert.NotNull(disapproval.SystemTime);
            Assert.Null(disapproval.ErrorCode);
            Assert.Null(disapproval.ErrorMessage);
            Assert.Null(disapproval.ErrorGroup);
        }
        public void Should_Create_Personal_Sub_Merchant()
        {
            CreateSubMerchantRequest request = new CreateSubMerchantRequest();

            request.ConversationId        = "123456";
            request.Locale                = Locale.TR.GetName();
            request.SubMerchantExternalId = "B49224";
            request.SubMerchantType       = SubMerchantType.PERSONAL.ToString();
            request.Address               = "Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy 34732";
            request.ContactName           = "Sabri Onur";
            request.ContactSurname        = "Tüzün";
            request.Email          = "*****@*****.**";
            request.GsmNumber      = "+905350000000";
            request.Name           = "Sabri Onur'un mağazası";
            request.Iban           = "TR180006200119000006672315";
            request.IdentityNumber = "1234567890";

            SubMerchant subMerchant = SubMerchant.Create(request, options);

            PrintResponse <SubMerchant>(subMerchant);

            Assert.IsNotNull(subMerchant.SystemTime);
            Assert.AreEqual(Status.SUCCESS.ToString(), subMerchant.Status);
            Assert.AreEqual(Locale.TR.GetName(), subMerchant.Locale);
            Assert.AreEqual("123456789", subMerchant.ConversationId);
        }
        public void Should_Create_Limited_Company_Sub_Merchant()
        {
            CreateSubMerchantRequest request = new CreateSubMerchantRequest();

            request.ConversationId        = "123456";
            request.Locale                = Locale.TR.GetName();
            request.SubMerchantExternalId = "AS49224";
            request.SubMerchantType       = SubMerchantType.LIMITED_OR_JOINT_STOCK_COMPANY.ToString();
            request.Address               = "Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy 34732";
            request.TaxOffice             = "Kadıköy V.D.";
            request.TaxNumber             = "9261877";
            request.LegalCompanyTitle     = "XYZ Bilişim Hizmetleri A.Ş.";
            request.Email     = "*****@*****.**";
            request.GsmNumber = "+905350000000";
            request.Name      = "Sabri Onur'un mağazası";
            request.Iban      = "TR180006200119000006672315";

            SubMerchant subMerchant = SubMerchant.Create(request, options);

            PrintResponse <SubMerchant>(subMerchant);

            Assert.IsNotNull(subMerchant.SystemTime);
            Assert.AreEqual(Status.SUCCESS.ToString(), subMerchant.Status);
            Assert.AreEqual(Locale.TR.GetName(), subMerchant.Locale);
            Assert.AreEqual("123456789", subMerchant.ConversationId);
        }
Esempio n. 6
0
        public async Task Should_Update_Limited_Company_Sub_Merchant()
        {
            CreateSubMerchantRequest createLimitedCompanySubMerchantRequest = CreateSubMerchantRequestBuilder.Create()
                                                                              .LimitedCompanySubMerchantRequest()
                                                                              .Build();

            var merchant = await SubMerchant.CreateAsync(createLimitedCompanySubMerchantRequest, Options);

            string subMerchantKey = merchant.SubMerchantKey;

            UpdateSubMerchantRequest updateSubMerchantRequest = UpdateSubMerchantRequestBuilder.Create()
                                                                .SubMerchantKey(subMerchantKey)
                                                                .Name("Jane's market")
                                                                .IdentityNumber("31300864726")
                                                                .TaxOffice("Tax office")
                                                                .LegalCompanyTitle("ABC inc")
                                                                .Build();

            SubMerchant subMerchant = await SubMerchant.UpdateAsync(updateSubMerchantRequest, Options);

            PrintResponse(subMerchant);

            Assert.AreEqual(Status.SUCCESS.ToString(), subMerchant.Status);
            Assert.AreEqual(Locale.TR.ToString(), subMerchant.Locale);
            Assert.AreEqual("123456789", subMerchant.ConversationId);
            Assert.NotNull(subMerchant.SystemTime);
            Assert.Null(subMerchant.ErrorCode);
            Assert.Null(subMerchant.ErrorMessage);
            Assert.Null(subMerchant.ErrorGroup);
        }
Esempio n. 7
0
        public async Task <GetCardDetailsResponse> GetCardDetails(
            string clientUniqueId,
            string cardNumber,
            string userId = null,
            DeviceDetails deviceDetails   = null,
            string rebillingType          = null,
            string authenticationTypeOnly = null,
            SubMerchant subMerchant       = null,
            Addendums addendums           = null)
        {
            var request = new GetCardDetailsRequest(
                merchantInfo,
                sessionToken,
                clientUniqueId,
                cardNumber)
            {
                UserId                 = userId,
                DeviceDetails          = deviceDetails,
                RebillingType          = rebillingType,
                AuthenticationTypeOnly = authenticationTypeOnly,
                SubMerchant            = subMerchant,
                Addendums              = addendums
            };

            return(await safechargeRequestExecutor.GetCardDetails(request));
        }
Esempio n. 8
0
        public void Should_Update_Private_Sub_Merchant()
        {
            CreateSubMerchantRequest createPrivateSubMerchantRequest = CreateSubMerchantRequestBuilder.Create()
                                                                       .PrivateSubMerchantRequest()
                                                                       .Build();

            string subMerchantKey = SubMerchant.Create(createPrivateSubMerchantRequest, _options).SubMerchantKey;

            UpdateSubMerchantRequest updateSubMerchantRequest = UpdateSubMerchantRequestBuilder.Create()
                                                                .SubMerchantKey(subMerchantKey)
                                                                .IdentityNumber("31300864726")
                                                                .TaxOffice("Tax office")
                                                                .LegalCompanyTitle("Jane Doe inc")
                                                                .Build();

            SubMerchant subMerchant = SubMerchant.Update(updateSubMerchantRequest, _options);

            PrintResponse(subMerchant);

            Assert.AreEqual(Status.SUCCESS.ToString(), subMerchant.Status);
            Assert.AreEqual(Locale.TR.ToString(), subMerchant.Locale);
            Assert.AreEqual("123456789", subMerchant.ConversationId);
            Assert.NotNull(subMerchant.SystemTime);
            Assert.Null(subMerchant.ErrorCode);
            Assert.Null(subMerchant.ErrorMessage);
            Assert.Null(subMerchant.ErrorGroup);
        }
        public void Should_Update_Private_Sub_Merchant()
        {
            UpdateSubMerchantRequest request = new UpdateSubMerchantRequest();

            request.Locale            = Locale.TR.ToString();
            request.ConversationId    = "123456789";
            request.SubMerchantKey    = "sub merchant key";
            request.Address           = "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1";
            request.TaxOffice         = "Tax office";
            request.LegalCompanyTitle = "Jane Doe inc";
            request.Email             = "*****@*****.**";
            request.GsmNumber         = "+905350000000";
            request.Name           = "Jane's market";
            request.Iban           = "TR180006200119000006672315";
            request.IdentityNumber = "31300864726";
            request.Currency       = Currency.TRY.ToString();

            SubMerchant subMerchant = SubMerchant.Update(request, options);

            PrintResponse <SubMerchant>(subMerchant);

            Assert.AreEqual(Status.SUCCESS.ToString(), subMerchant.Status);
            Assert.AreEqual(Locale.TR.ToString(), subMerchant.Locale);
            Assert.AreEqual("123456789", subMerchant.ConversationId);
            Assert.IsNotNull(subMerchant.SystemTime);
            Assert.IsNull(subMerchant.ErrorCode);
            Assert.IsNull(subMerchant.ErrorMessage);
            Assert.IsNull(subMerchant.ErrorGroup);
        }
Esempio n. 10
0
        public async Task Should_Update_Personal_Sub_Merchant()
        {
            CreateSubMerchantRequest createPersonalSubMerchantRequest = CreateSubMerchantRequestBuilder.Create()
                                                                        .PersonalSubMerchantRequest()
                                                                        .Build();

            var merchant = await SubMerchant.CreateAsync(createPersonalSubMerchantRequest, Options);

            string subMerchantKey = merchant.SubMerchantKey;

            UpdateSubMerchantRequest updateSubMerchantRequest = UpdateSubMerchantRequestBuilder.Create()
                                                                .SubMerchantKey(subMerchantKey)
                                                                .ContactName("Jane")
                                                                .ContactSurname("Doe")
                                                                .IdentityNumber("31300864726")
                                                                .Name("Jane's market")
                                                                .Build();

            SubMerchant subMerchant = await SubMerchant.UpdateAsync(updateSubMerchantRequest, Options);

            PrintResponse(subMerchant);

            Assert.AreEqual(Status.SUCCESS.ToString(), subMerchant.Status);
            Assert.AreEqual(Locale.TR.ToString(), subMerchant.Locale);
            Assert.AreEqual("123456789", subMerchant.ConversationId);
            Assert.NotNull(subMerchant.SystemTime);
            Assert.Null(subMerchant.ErrorCode);
            Assert.Null(subMerchant.ErrorMessage);
            Assert.Null(subMerchant.ErrorGroup);
        }
Esempio n. 11
0
        public async Task Should_Create_Private_Sub_Merchant()
        {
            CreateSubMerchantRequest request = new CreateSubMerchantRequest
            {
                Locale                = Locale.TR.ToString(),
                ConversationId        = "123456789",
                SubMerchantExternalId = "S49222",
                SubMerchantType       = SubMerchantType.PRIVATE_COMPANY.ToString(),
                Address               = "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1",
                TaxOffice             = "Tax office",
                LegalCompanyTitle     = "John Doe inc",
                Email          = "*****@*****.**",
                GsmNumber      = "+905350000000",
                Name           = "John's market",
                Iban           = "TR180006200119000006672315",
                IdentityNumber = "31300864726",
                Currency       = Currency.TRY.ToString()
            };

            SubMerchant subMerchant = await SubMerchant.CreateAsync(request, Options);

            PrintResponse(subMerchant);

            Assert.AreEqual(Status.SUCCESS.ToString(), subMerchant.Status);
            Assert.AreEqual(Locale.TR.ToString(), subMerchant.Locale);
            Assert.AreEqual("123456789", subMerchant.ConversationId);
            Assert.IsNotNull(subMerchant.SystemTime);
            Assert.IsNull(subMerchant.ErrorCode);
            Assert.IsNull(subMerchant.ErrorMessage);
            Assert.IsNull(subMerchant.ErrorGroup);
        }
Esempio n. 12
0
        public async Task Should_Update_Personal_Sub_Merchant()
        {
            UpdateSubMerchantRequest request = new UpdateSubMerchantRequest
            {
                Locale         = Locale.TR.ToString(),
                ConversationId = "123456789",
                SubMerchantKey = "sub merchant key",
                Iban           = "TR630006200027700006678204",
                Address        = "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1",
                ContactName    = "Jane",
                ContactSurname = "Doe",
                Email          = "*****@*****.**",
                GsmNumber      = "+905350000000",
                Name           = "Jane's market",
                IdentityNumber = "31300864726",
                Currency       = Currency.TRY.ToString()
            };

            SubMerchant subMerchant = await SubMerchant.UpdateAsync(request, Options);

            PrintResponse(subMerchant);

            Assert.AreEqual(Status.SUCCESS.ToString(), subMerchant.Status);
            Assert.AreEqual(Locale.TR.ToString(), subMerchant.Locale);
            Assert.AreEqual("123456789", subMerchant.ConversationId);
            Assert.IsNotNull(subMerchant.SystemTime);
            Assert.IsNull(subMerchant.ErrorCode);
            Assert.IsNull(subMerchant.ErrorMessage);
            Assert.IsNull(subMerchant.ErrorGroup);
        }
Esempio n. 13
0
        public async Task Should_Update_Limited_Company_Sub_Merchant()
        {
            UpdateSubMerchantRequest request = new UpdateSubMerchantRequest
            {
                Locale            = Locale.TR.ToString(),
                ConversationId    = "123456789",
                SubMerchantKey    = "sub merchant key",
                Address           = "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1",
                TaxOffice         = "Tax office",
                TaxNumber         = "9261877",
                LegalCompanyTitle = "ABC inc",
                Email             = "*****@*****.**",
                GsmNumber         = "+905350000000",
                Name     = "Jane's market",
                Iban     = "TR180006200119000006672315",
                Currency = Currency.TRY.ToString()
            };

            SubMerchant subMerchant = await SubMerchant.UpdateAsync(request, Options);

            PrintResponse(subMerchant);

            Assert.AreEqual(Status.SUCCESS.ToString(), subMerchant.Status);
            Assert.AreEqual(Locale.TR.ToString(), subMerchant.Locale);
            Assert.AreEqual("123456789", subMerchant.ConversationId);
            Assert.IsNotNull(subMerchant.SystemTime);
            Assert.IsNull(subMerchant.ErrorCode);
            Assert.IsNull(subMerchant.ErrorMessage);
            Assert.IsNull(subMerchant.ErrorGroup);
        }
Esempio n. 14
0
        /// <summary>
        /// 更新子商户
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="info">子商户数据</param>
        /// <returns></returns>
        public JsonResult <SubMerchant> UpdateSubMerchant(string access_token, SubMerchant info)
        {
            var    obj = new { info };
            string url = $"{Config.WxApi}card/submerchant/update?access_token={access_token}";

            return(WxAPI.RequestData <SubMerchant>(url, obj, Method.POST));
        }
Esempio n. 15
0
        public void Should_Create_Marketplace_Payment()
        {
            CreateSubMerchantRequest createSubMerchantRequest = CreateSubMerchantRequestBuilder.Create()
                                                                .PersonalSubMerchantRequest()
                                                                .Build();

            string subMerchantKey        = SubMerchant.Create(createSubMerchantRequest, _options).SubMerchantKey;
            CreatePaymentRequest request = CreatePaymentRequestBuilder.Create()
                                           .MarketplacePayment(subMerchantKey)
                                           .Build();

            Payment payment = Payment.Create(request, _options);

            PrintResponse(payment);

            Assert.Null(payment.ConnectorName);
            Assert.AreEqual(Locale.TR.ToString(), payment.Locale);
            Assert.AreEqual(Status.SUCCESS.ToString(), payment.Status);
            Assert.NotNull(payment.SystemTime);
            Assert.Null(payment.ErrorCode);
            Assert.Null(payment.ErrorMessage);
            Assert.Null(payment.ErrorGroup);
            Assert.NotNull(payment.PaymentId);
            Assert.NotNull(payment.BasketId);
            Assert.AreEqual("1", payment.Price);
            Assert.AreEqual("1.1", payment.PaidPrice);
            Assert.AreEqual("0.028875", payment.IyziCommissionRateAmount.RemoveTrailingZeros());
            Assert.AreEqual("0.25", payment.IyziCommissionFee.RemoveTrailingZeros());
            Assert.AreEqual("10", payment.MerchantCommissionRate.RemoveTrailingZeros());
            Assert.AreEqual("0.1", payment.MerchantCommissionRateAmount.RemoveTrailingZeros());
            Assert.AreEqual(1, payment.Installment);
        }
Esempio n. 16
0
        public void Should_Update_Personal_Sub_Merchant()
        {
            UpdateSubMerchantRequest request = new UpdateSubMerchantRequest();

            request.ConversationId = "123456789";
            request.Locale         = Locale.TR.GetName();
            request.SubMerchantKey = "sub merchant key";
            request.Address        = "Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy 34732";
            request.ContactName    = "Hakan";
            request.ContactSurname = "Erdoğan";
            request.Email          = "*****@*****.**";
            request.GsmNumber      = "+905350000000";
            request.Name           = "Hakan Erdoğan'ın mağazası";
            request.Iban           = "TR630006200027700006678204";
            request.IdentityNumber = "31300864726";

            SubMerchant subMerchant = SubMerchant.Update(request, options);

            PrintResponse <SubMerchant>(subMerchant);

            Assert.IsNotNull(subMerchant.SystemTime);
            Assert.AreEqual(Status.SUCCESS.ToString(), subMerchant.Status);
            Assert.AreEqual(Locale.TR.GetName(), subMerchant.Locale);
            Assert.AreEqual("123456789", subMerchant.ConversationId);
        }
        public void Should_Create_Personal_Sub_Merchant()
        {
            CreateSubMerchantRequest request = new CreateSubMerchantRequest();

            request.Locale                = Locale.TR.ToString();
            request.ConversationId        = "123456789";
            request.SubMerchantExternalId = "B49224";
            request.SubMerchantType       = SubMerchantType.PERSONAL.ToString();
            request.Address               = "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1";
            request.ContactName           = "John";
            request.ContactSurname        = "Doe";
            request.Email          = "*****@*****.**";
            request.GsmNumber      = "+905350000000";
            request.Name           = "John's market";
            request.Iban           = "TR180006200119000006672315";
            request.IdentityNumber = "31300864726";
            request.Currency       = Currency.TRY.ToString();

            SubMerchant subMerchant = SubMerchant.Create(request, options);

            PrintResponse <SubMerchant>(subMerchant);

            Assert.AreEqual(Status.SUCCESS.ToString(), subMerchant.Status);
            Assert.AreEqual(Locale.TR.ToString(), subMerchant.Locale);
            Assert.AreEqual("123456789", subMerchant.ConversationId);
            Assert.IsNotNull(subMerchant.SystemTime);
            Assert.IsNull(subMerchant.ErrorCode);
            Assert.IsNull(subMerchant.ErrorMessage);
            Assert.IsNull(subMerchant.ErrorGroup);
        }
Esempio n. 18
0
        public async Task Should_Retrieve_Sub_Merchant()
        {
            string subMerchantExternalId = RandomGenerator.RandomId;
            CreateSubMerchantRequest createLimitedCompanySubMerchantRequest = CreateSubMerchantRequestBuilder.Create()
                                                                              .LimitedCompanySubMerchantRequest()
                                                                              .SubMerchantExternalId(subMerchantExternalId)
                                                                              .Build();

            await SubMerchant.CreateAsync(createLimitedCompanySubMerchantRequest, Options);

            RetrieveSubMerchantRequest request = RetrieveSubMerchantRequestBuilder.Create()
                                                 .SubMerchantExternalId(subMerchantExternalId)
                                                 .Build();

            SubMerchant subMerchant = await SubMerchant.RetrieveAsync(request, Options);

            PrintResponse(subMerchant);

            Assert.AreEqual(Status.SUCCESS.ToString(), subMerchant.Status);
            Assert.AreEqual(Locale.TR.ToString(), subMerchant.Locale);
            Assert.AreEqual("123456789", subMerchant.ConversationId);
            Assert.AreEqual("9261877", subMerchant.TaxNumber);
            Assert.AreEqual("TR180006200119000006672315", subMerchant.Iban);
            Assert.AreEqual("Tax office", subMerchant.TaxOffice);
            Assert.AreEqual(subMerchantExternalId, subMerchant.SubMerchantExternalId);
            Assert.NotNull(subMerchant.SystemTime);
            Assert.Null(subMerchant.ErrorCode);
            Assert.Null(subMerchant.ErrorMessage);
            Assert.Null(subMerchant.ErrorGroup);
        }
        public void Should_Create_Limited_Company_Sub_Merchant()
        {
            CreateSubMerchantRequest request = new CreateSubMerchantRequest();

            request.Locale                = Locale.TR.ToString();
            request.ConversationId        = "123456789";
            request.SubMerchantExternalId = "AS49224";
            request.SubMerchantType       = SubMerchantType.LIMITED_OR_JOINT_STOCK_COMPANY.ToString();
            request.Address               = "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1";
            request.TaxOffice             = "Tax office";
            request.TaxNumber             = "9261877";
            request.LegalCompanyTitle     = "XYZ inc";
            request.Email     = "*****@*****.**";
            request.GsmNumber = "+905350000000";
            request.Name      = "John's market";
            request.Iban      = "TR180006200119000006672315";
            request.Currency  = Currency.TRY.ToString();

            SubMerchant subMerchant = SubMerchant.Create(request, options);

            PrintResponse <SubMerchant>(subMerchant);

            Assert.AreEqual(Status.SUCCESS.ToString(), subMerchant.Status);
            Assert.AreEqual(Locale.TR.ToString(), subMerchant.Locale);
            Assert.AreEqual("123456789", subMerchant.ConversationId);
            Assert.IsNotNull(subMerchant.SystemTime);
            Assert.IsNull(subMerchant.ErrorCode);
            Assert.IsNull(subMerchant.ErrorMessage);
            Assert.IsNull(subMerchant.ErrorGroup);
        }
Esempio n. 20
0
        public void Should_Create_Threeds_Payment_With_Physical_And_Virtual_Item_For_Marketplace_Merchant()
        {
            CreateSubMerchantRequest createSubMerchantRequest = CreateSubMerchantRequestBuilder.Create()
                                                                .PersonalSubMerchantRequest()
                                                                .Build();

            SubMerchant subMerchant = SubMerchant.Create(createSubMerchantRequest, _options);

            CreatePaymentRequest createPaymentRequest = CreatePaymentRequestBuilder.Create()
                                                        .MarketplacePayment(subMerchant.SubMerchantKey)
                                                        .CallbackUrl("https://www.merchant.com/callback")
                                                        .Build();

            ThreedsInitialize threedsInitialize = ThreedsInitialize.Create(createPaymentRequest, _options);

            PrintResponse(threedsInitialize);

            Assert.AreEqual(Locale.TR.ToString(), threedsInitialize.Locale);
            Assert.AreEqual(Status.SUCCESS.ToString(), threedsInitialize.Status);
            Assert.NotNull(threedsInitialize.SystemTime);
            Assert.NotNull(threedsInitialize.HtmlContent);
            Assert.Null(threedsInitialize.ErrorCode);
            Assert.Null(threedsInitialize.ErrorMessage);
            Assert.Null(threedsInitialize.ErrorGroup);
        }
Esempio n. 21
0
        public async Task Should_Not_Update_Payment_Item_When_TransactionId_Is_Wrong()
        {
            CreateSubMerchantRequest createSubMerchantRequest = CreateSubMerchantRequestBuilder.Create()
                                                                .PersonalSubMerchantRequest()
                                                                .Build();

            SubMerchant subMerchant = await SubMerchant.CreateAsync(createSubMerchantRequest, Options);

            string subMerchantKey = subMerchant.SubMerchantKey;

            CreatePaymentRequest request = CreatePaymentRequestBuilder
                                           .Create()
                                           .MarketplacePayment(subMerchantKey, "40", "30")
                                           .Price("40")
                                           .PaidPrice("40")
                                           .Build();

            Payment payment = await Payment.CreateAsync(request, Options);

            UpdatePaymentItemRequest updateRequest = new UpdatePaymentItemRequest
            {
                Locale               = Locale.TR.ToString(),
                ConversationId       = payment.ConversationId,
                SubMerchantKey       = subMerchantKey,
                PaymentTransactionId = "1",
                SubMerchantPrice     = "25"
            };

            PaymentItem paymentItem = await PaymentItem.UpdateAsync(updateRequest, Options);

            PrintResponse(paymentItem);

            Assert.NotNull(paymentItem);
            Assert.AreEqual(Status.FAILURE.ToString(), paymentItem.Status);
        }
Esempio n. 22
0
        public async Task <Authorize3dResponse> Authorize3d(
            string currency,
            string amount,
            PaymentOption paymentOption,
            string relatedTransactionId,
            List <Item> items                   = null,
            string userTokenId                  = null,
            string clientUniqueId               = null,
            string clientRequestId              = null,
            int?isRebilling                     = null,
            AmountDetails amountDetails         = null,
            DeviceDetails deviceDetails         = null,
            CashierUserDetails userDetails      = null,
            UserAddress shippingAddress         = null,
            UserAddress billingAddress          = null,
            DynamicDescriptor dynamicDescriptor = null,
            MerchantDetails merchantDetails     = null,
            Addendums addendums                 = null,
            UrlDetails urlDetails               = null,
            string customSiteName               = null,
            string productId                    = null,
            string customData                   = null,
            string transactionType              = null,
            bool autoPayment3D                  = default,
            string userId                 = null,
            string rebillingType          = null,
            string authenticationTypeOnly = null,
            SubMerchant subMerchant       = null)
        {
            var request = new Authorize3dRequest(merchantInfo, sessionToken, currency, amount, paymentOption, relatedTransactionId)
            {
                Items                  = items,
                UserTokenId            = userTokenId,
                ClientRequestId        = clientRequestId,
                ClientUniqueId         = clientUniqueId,
                IsRebilling            = isRebilling,
                AmountDetails          = amountDetails,
                DeviceDetails          = deviceDetails,
                UserDetails            = userDetails,
                ShippingAddress        = shippingAddress,
                BillingAddress         = billingAddress,
                DynamicDescriptor      = dynamicDescriptor,
                MerchantDetails        = merchantDetails,
                Addendums              = addendums,
                UrlDetails             = urlDetails,
                CustomSiteName         = customSiteName,
                ProductId              = productId,
                CustomData             = customData,
                TransactionType        = transactionType,
                AutoPayment3D          = autoPayment3D,
                UserId                 = userId,
                RebillingType          = rebillingType,
                AuthenticationTypeOnly = authenticationTypeOnly,
                SubMerchant            = subMerchant
            };

            return(await safechargeRequestExecutor.Authorize3d(request));
        }
Esempio n. 23
0
        public async Task <IActionResult> GetSubMerchant(int id)
        {
            RetrieveSubMerchantRequest request = new RetrieveSubMerchantRequest

            {
                Locale = Locale.TR.ToString(),
                SubMerchantExternalId = "mor1",
                ConversationId        = "123456789"
            };

            MerchantVM.SubMerchant = await SubMerchant.RetrieveAsync(request, option);

            return(View(MerchantVM));
        }
Esempio n. 24
0
        public async Task <SettleTransactionResponse> SettleTransaction(
            string currency,
            string amount,
            string relatedTransactionId,
            string clientUniqueId               = null,
            string clientRequestId              = null,
            string userId                       = null,
            Addendums addendums                 = null,
            string descriptorMerchantName       = null,
            string descriptorMerchantPhone      = null,
            DynamicDescriptor dynamicDescriptor = null,
            UrlDetails urlDetails               = null,
            string authCode                     = null,
            string customData                   = null,
            string comment                      = null,
            string customSiteName               = null,
            string productId                    = null,
            DeviceDetails deviceDetails         = null,
            string rebillingType                = null,
            string authenticationTypeOnly       = null,
            SubMerchant subMerchant             = null)
        {
            var request = new SettleTransactionRequest(
                merchantInfo,
                sessionToken,
                currency,
                amount,
                relatedTransactionId)
            {
                AuthCode                = authCode,
                ClientUniqueId          = clientUniqueId,
                ClientRequestId         = clientRequestId,
                UserId                  = userId,
                Addendums               = addendums,
                DescriptorMerchantName  = dynamicDescriptor?.MerchantName ?? descriptorMerchantName,
                DescriptorMerchantPhone = dynamicDescriptor?.MerchantPhone ?? descriptorMerchantPhone,
                UrlDetails              = urlDetails,
                CustomData              = customData,
                Comment                 = comment,
                CustomSiteName          = customSiteName,
                ProductId               = productId,
                DeviceDetails           = deviceDetails,
                RebillingType           = rebillingType,
                AuthenticationTypeOnly  = authenticationTypeOnly,
                SubMerchant             = subMerchant
            };

            return(await safechargeRequestExecutor.SettleTransaction(request));
        }
Esempio n. 25
0
        public void Should_Retrieve_Sub_Merchant()
        {
            RetrieveSubMerchantRequest request = new RetrieveSubMerchantRequest();

            request.ConversationId        = "123456789";
            request.Locale                = Locale.TR.GetName();
            request.SubMerchantExternalId = "AS49224";

            SubMerchant subMerchant = SubMerchant.Retrieve(request, options);

            PrintResponse <SubMerchant>(subMerchant);

            Assert.IsNotNull(subMerchant.SystemTime);
            Assert.AreEqual(Status.SUCCESS.ToString(), subMerchant.Status);
            Assert.AreEqual(Locale.TR.GetName(), subMerchant.Locale);
            Assert.AreEqual("123456789", subMerchant.ConversationId);
        }
Esempio n. 26
0
        public async Task Should_Update_Payment_Item()
        {
            CreateSubMerchantRequest createSubMerchantRequest = CreateSubMerchantRequestBuilder.Create()
                                                                .PersonalSubMerchantRequest()
                                                                .Build();

            SubMerchant subMerchant = await SubMerchant.CreateAsync(createSubMerchantRequest, Options);

            string subMerchantKey = subMerchant.SubMerchantKey;

            CreatePaymentRequest request = CreatePaymentRequestBuilder
                                           .Create()
                                           .MarketplacePayment(subMerchantKey, "0.4", "0.3")
                                           .Price("0.4")
                                           .PaidPrice("0.4")
                                           .Build();

            Payment payment = await Payment.CreateAsync(request, Options);

            UpdatePaymentItemRequest updateRequest = new UpdatePaymentItemRequest
            {
                Locale               = Locale.TR.ToString(),
                ConversationId       = payment.ConversationId,
                SubMerchantKey       = subMerchantKey,
                PaymentTransactionId = payment.PaymentItems?[0]?.PaymentTransactionId,
                SubMerchantPrice     = "0.23"
            };

            PaymentItem paymentItem = await PaymentItem.UpdateAsync(updateRequest, Options);

            PrintResponse(paymentItem);

            Assert.NotNull(paymentItem);
            Assert.NotNull(paymentItem.Locale);
            Assert.NotNull(paymentItem.ConversationId);
            Assert.NotNull(paymentItem.SubMerchantKey);
            Assert.NotNull(paymentItem.PaymentTransactionId);
            Assert.NotNull(paymentItem.SubMerchantPrice);
            Assert.AreEqual(Status.SUCCESS.ToString(), paymentItem.Status);
            Assert.AreEqual(Locale.TR.ToString(), paymentItem.Locale);
            Assert.AreEqual(updateRequest.ConversationId, paymentItem.ConversationId);
            Assert.AreEqual(updateRequest.SubMerchantKey, paymentItem.SubMerchantKey);
            Assert.AreEqual(updateRequest.PaymentTransactionId, paymentItem.PaymentTransactionId);
            Assert.AreEqual(updateRequest.SubMerchantPrice, paymentItem.SubMerchantPrice);
        }
Esempio n. 27
0
        public async Task Should_Not_MakePayment_When_Price_And_PaidPrice_Are_Same()
        {
            CreateSubMerchantRequest createSubMerchantRequest = CreateSubMerchantRequestBuilder.Create()
                                                                .PersonalSubMerchantRequest()
                                                                .Build();

            SubMerchant subMerchant = await SubMerchant.CreateAsync(createSubMerchantRequest, Options);

            string subMerchantKey        = subMerchant.SubMerchantKey;
            CreatePaymentRequest request = CreatePaymentRequestBuilder.Create()
                                           .MarketplacePaymentWithSamePrice(subMerchantKey)
                                           .Build();

            Payment payment = await Payment.CreateAsync(request, Options);

            Assert.AreEqual(Status.FAILURE.ToString(), payment.Status);
            Assert.NotNull(payment.ErrorCode);
            Assert.NotNull(payment.ErrorMessage);
        }
Esempio n. 28
0
        public async Task <PayoutResponse> Payout(
            string userTokenId,
            string clientUniqueId,
            string amount,
            string currency,
            UserPaymentOption userPaymentOption,
            string comment = null,
            DynamicDescriptor dynamicDescriptor = null,
            MerchantDetails merchantDetails     = null,
            UrlDetails urlDetails       = null,
            DeviceDetails deviceDetails = null,
            CardData cardData           = null,
            string userId                 = null,
            string rebillingType          = null,
            string authenticationTypeOnly = null,
            SubMerchant subMerchant       = null,
            Addendums addendums           = null)
        {
            var request = new PayoutRequest(
                merchantInfo,
                sessionToken,
                userTokenId,
                clientUniqueId,
                amount,
                currency,
                userPaymentOption)
            {
                Comment                = comment,
                DynamicDescriptor      = dynamicDescriptor,
                MerchantDetails        = merchantDetails,
                UrlDetails             = urlDetails,
                DeviceDetails          = deviceDetails,
                CardData               = cardData,
                UserId                 = userId,
                RebillingType          = rebillingType,
                AuthenticationTypeOnly = authenticationTypeOnly,
                SubMerchant            = subMerchant,
                Addendums              = addendums
            };

            return(await safechargeRequestExecutor.Payout(request));
        }
Esempio n. 29
0
        public async Task Should_Retrieve_Sub_Merchant()
        {
            RetrieveSubMerchantRequest request = new RetrieveSubMerchantRequest
            {
                Locale                = Locale.TR.ToString(),
                ConversationId        = "123456789",
                SubMerchantExternalId = "AS49224"
            };

            SubMerchant subMerchant = await SubMerchant.RetrieveAsync(request, Options);

            PrintResponse(subMerchant);

            Assert.AreEqual(Status.SUCCESS.ToString(), subMerchant.Status);
            Assert.AreEqual(Locale.TR.ToString(), subMerchant.Locale);
            Assert.AreEqual("123456789", subMerchant.ConversationId);
            Assert.IsNotNull(subMerchant.SystemTime);
            Assert.IsNull(subMerchant.ErrorCode);
            Assert.IsNull(subMerchant.ErrorMessage);
            Assert.IsNull(subMerchant.ErrorGroup);
        }
Esempio n. 30
0
        public async Task Should_Create_Marketplace_Payment()
        {
            CreateSubMerchantRequest createSubMerchantRequest = CreateSubMerchantRequestBuilder.Create()
                                                                .PersonalSubMerchantRequest()
                                                                .Build();

            SubMerchant subMerchant = await SubMerchant.CreateAsync(createSubMerchantRequest, Options);

            string subMerchantKey        = subMerchant.SubMerchantKey;
            CreatePaymentRequest request = CreatePaymentRequestBuilder.Create()
                                           .MarketplacePayment(subMerchantKey)
                                           .Build();

            Payment payment = await Payment.CreateAsync(request, Options);

            PrintResponse(payment);

            Assert.Null(payment.ConnectorName);
            Assert.AreEqual(Locale.TR.ToString(), payment.Locale);
            Assert.AreEqual(Status.SUCCESS.ToString(), payment.Status);
            Assert.NotNull(payment.SystemTime);
            Assert.Null(payment.ErrorCode);
            Assert.Null(payment.ErrorMessage);
            Assert.Null(payment.ErrorGroup);
            Assert.NotNull(payment.PaymentId);
            Assert.NotNull(payment.BasketId);
            Assert.AreEqual("1", payment.Price);
            Assert.AreEqual("1.1", payment.PaidPrice);
            Assert.AreEqual("0.02887500", payment.IyziCommissionRateAmount);
            Assert.AreEqual("0.25000000", payment.IyziCommissionFee);
            Assert.AreEqual("10.00000000", payment.MerchantCommissionRate);
            Assert.AreEqual("0.1", payment.MerchantCommissionRateAmount);
            Assert.AreEqual(0.028875, payment.IyziCommissionRateAmount.ParseDouble());
            Assert.AreEqual(0.25, payment.IyziCommissionFee.ParseDouble());
            Assert.AreEqual(10, payment.MerchantCommissionRate.ParseDouble());
            AssertDecimal.AreEqual(0.02887500M, payment.IyziCommissionRateAmount.ParseDecimal());
            AssertDecimal.AreEqual(0.25000000M, payment.IyziCommissionFee.ParseDecimal());
            AssertDecimal.AreEqual(10.00000000M, payment.MerchantCommissionRate.ParseDecimal());
            Assert.AreEqual(1, payment.Installment);
        }