PayTabs SDK makes the integration with the PayTabs payment gateway very easy by providing a ready-made payment screen that handles the card entry and, billing & shipping information and completes the missing details.


This article is dedicated to walking you through how to initiate the payment/request payload using the configuration options and parameters that have already been clarified in the previous step, "Step 2 - Configure the integration method".


Implementing this option will enable you to initiate payments targeted to be paid using the supported types of credit cards such as Visa, MasterCard, Amex, .. etc. To be able to do this, please follow the below instructions:



iOS:


After making sure of configuring this SDK as you wish, you will need to import the SDK package classes in your code first to start, as shown below: 


using PaymentSDKBinding;
Generic


  1. Configure the billing & shipping information for this payment, noting that the shipping information is optional. To know more about this, please check our 3.1 Xamarin SDK | Manage Shipping and Billing details and 2.1 Xamarin SDK | Configuration Options & Parameters solution articles. 
    PaymentBillingDetails billingDetails = new PaymentBillingDetails
            {
                Name = "FirstName LastName",
                Email = "email@domain.com",
                Phone = "+971111111111",
                AddressLine = "Address line",
                City = "Dubai",
                State = "Dubai",
                CountryCode = "AE",  // ISO alpha 2
                Zip = "12345"
            };
    
    PaymentShippingDetails shippingDetails = new PaymentShippingDetails
            {
                Name = "FirstName LastName",
                Email = "email@domain.com",
                Phone = "+971111111111",
                AddressLine = "Address line",
                City = "Dubai",
                State = "Dubai",
                CountryCode = "AE",  // ISO alpha 2
                Zip = "12345"
            };                                         
    Generic



  2. Then create an object from PaymentConfiguration and fill it out with your credentials and payment details. To know more about what is the exact values that should be passed here, please check our 2.1 Xamarin SDK | Configuration Options & Parameters and 2.2 Xamarin SDK | The Payment Configuration Object solution articles.

    PaymentConfiguration configuration = new PaymentConfiguration
    {
                ProfileID = "*Profile Id*",
                ServerKey = "*Server key*",
                ClientKey = "*Client Key*",
                MerchantCountryCode = "AE",
                Currency = "USD",
                Amount = 130,
                CartID = "123456",
                CartDescription = "Buy 2 Flowers",
                MerchantName = "Flowers Store",
                ScreenTitle = "Pay with Card",
    };
    Generic



  3. Only then you will be ready to start/initiate the payment by passing your PaymentConfiguration object to the StartCardPaymentWithConfiguration function.To know more about this please check our 2.2 Xamarin SDK | The Payment Configuration Object

    - Define a variable of type PaymentSDKProxy

    private PaymentSDKProxy _proxy;
    Generic


    - Call the StartCardPaymentWithConfiguration method


     _proxy.StartCardPaymentWithConfiguration(configuration, this);
    Generic


    To handle the response payment details & events callback you have to implement the IPaymentCallback interface. To know more about this please check our Step 5 - Xamarin SDK | Handle the payment response solution article.

    This will make the payment behavior would be like the one below, in which your customers will have to provide their full card details.





Android:


After making sure of configuring this SDK as you wish, you will need to import the SDK package classes in your code first to start, as shown below: 

using Com.Payment.Paymentsdk.Integrationmodels;
using Com.Payment.Paymentsdk;
using Com.Payment.Paymentsdk.Sharedclasses.Interfaces;


  1. Configure the billing & shipping information for this payment, noting that the shipping information is optional. To know more about this, please check our 3.1 Xamarin SDK | Manage Shipping and Billing details and 2.1 Xamarin SDK | Configuration Options & Parameters solution articles. 
    PaymentBillingDetails billingDetails = new PaymentSdkBillingDetails(
    	"Dubai",  //city
    	"AE", //2 digit iso Country code
    	"email@domain.com", //email
    	"FirstName LastName", //Full Name
    	"+971111111111", // Phone number
    	"Dubai", //State
    	"address street", // Address Line
    	"12345" // ZIP code
    );
    
    PaymentSdkShippingDetails shippingDetails = new PaymentSdkShippingDetails(
    	"Dubai", //city
    	"AE", //2 digit iso Country code
    	"email@domain.com",  //email
    	"FirstName LastName",  //Full Name
    	"+971111111111",   // Phone number
    	"Dubai", //State
    	"Address line",  // Address Line
    	"12345"  // ZIP code
    );
    Generic



  2. Then create an object from PaymentSdkConfigBuilder and fill it out with your credentials and payment details. To know more about what is the exact values that should be passed here, please check our 2.1 Xamarin SDK | Configuration Options & Parameters and 2.2 Xamarin SDK | The Payment Configuration Object solution articles.

    PaymentSdkConfigurationDetails configuration = new PaymentSdkConfigBuilder(
    "*Profile ID*", "*Server Key*", "*Client Key*", 44.0, "USD")
                    .SetCartId("123")
                    .SetCartDescription("yyif")
                    .SetMerchantCountryCode("AE")
                    .SetBillingData(billDetails)
                    .SetShippingData(shippingDetails)
                    .Build();
    Generic



  3. Only then you will be ready to start/initiate the payment by passing your PaymentSdkConfigBuilder object to the startCardPayment function.To know more about this please check our 2.2 Xamarin SDK | The Payment Configuration Object

    PaymentSdkActivity.StartCardPayment(this,configuration, this);
    Generic



    This will make the payment behavior would be like the one below, in which your customers will have to provide their full card details.









⌂ To get familiar with the whole process and the other steps, kindly navigate to our "The Xamarin (Bridge) SDK Integration Manual" solution article. 

 And to navigate to the previous step in the integration process "Step 2 - Configure the integration method" click here  And to get familiar with the rest of the steps regarding the current step "Step 3 - Initiating the payment" click here.

⇨ Or you can navigate to the next step in the integration process "Step 4 - Accepting the payment" kindly click here.