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".


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

`

import {RNPaymentSDKLibrary, PaymentSDKConfiguration, PaymentSDKBillingDetails, PaymentSDKTheme, PaymentSDKConstants, PaymentSDKSavedCardInfo} from '@paytabs/react-native-paytabs';import {RNPaymentSDKLibrary, PaymentSDKConfiguration, PaymentSDKBillingDetails, PaymentSDKTheme, PaymentSDKConstants, PaymentSDKSavedCardInfo} from '@paytabs/react-native-paytabs';
Generic


Implementing this option will enable you to initiate payments targeted to be paid using the ApplePay payment method. To be able to do this, please follow the below instructions:


  1. First, start by following the guide steps to configure ApplePay, to know how you can configure ApplePay with PayTabs, and passing the "merchantName" and "merchantIdentifier" parameters within your PaymentSdkConfiguration, as shown below.  
    configuration.merchantName = "Flowers Store"
    configuration.merchantIdentifier = "merchant.com.bundleID",


  2. Make sure you import PaymentSdkConfiguration Component.

  3. Configure the billing & shipping information for this payment, noting that the shipping information is optional. If you decide to skip this step, ApplePay will require this information from your customers' wallets, which should be updated accordingly. To know more about this, please check our  3.1 React Native SDK | Manage Shipping and Billing details, and 2.1 React Native SDK | Configuration Options & Parameters solution articles. 

    let billingDetails = new PaymentSDKBillingDetails(
                   name= "John Smith",
                   email= "[email protected]",
                   phone= "+2011111111",
                   addressLine= "address line",
                   city= "Dubai",
                   state= "Dubai",
                   countryCode= "ae", // ISO alpha 2
                   zip= "1234");
    
    let shippingDetails = new PaymentSDKShippingDetails(
                   name= "John Smith",
                   email= "[email protected]",
                   phone= "+2011111111",
                   addressLine= "address line",
                   city= "Dubai",
                   state= "Dubai",
                   countryCode= "ae", // ISO alpha 2
                   zip= "1234");
    HTML



  4. Then create an object from PaymentSdkConfiguration and fill it out with your credentials and payment details, You should know that it's required to pass the merchant name and merchant identifier parameters. To know more about what is the exact values that should be passed here, please check our 2.1 React Native SDK | Configuration Options & Parameters, and 2.2 React Native SDK | The PaymentSDKConfiguration Object solution articles.

    let configuration = new PaymentSDKConfiguration();
        configuration.profileID = "*your profile id*"
        configuration.serverKey= "*server key*"
        configuration.clientKey = "*client key*"
        configuration.cartID = "545454"
        configuration.currency = "AED"
        configuration.cartDescription = "Flowers"
        configuration.merchantCountryCode = "ae"
        configuration.merchantName = "Flowers Store"
        configuration.amount = 20
        configuration.screenTitle = "Pay with Card"
        configuration.billingDetails = billingDetails
        configuration.forceShippingInfo = false
        configuration.merchantName = "Flowers Store"
        configuration.merchantIdentifier = "merchant.com.bundleID",
    Generic

     

  5. As an additional step, you can simplify ApplePay validation on all users' billing information to validate only the name, phone, and email by passing the simplifyApplePayValidation configuration parameter with true.

    configuration.simplifyApplePayValidation = true
    Generic





  6. Only then you will be ready to start/initiate the payment by passing your PaymentSdkConfiguration to the startApplePayPayment function in which the callback event and the setState method will handle/alter the payment response. To know more about this please check our 2.2 React Native SDK | The PaymentSdkConfiguration Object and Step 5 - React Native SDK | Handle the payment response solution articles. 

    RNPaymentSDKLibrary.startApplePayPayment(JSON.stringify(configuration)).then( result => {
            if(result["PaymentDetails"] != null) { // Handle transaction details
              let paymentDetails = result["PaymentDetails"]
              console.log(paymentDetails)
            } else if(result["Event"] == "CancelPayment") { // Handle events
              console.log("Cancel Payment Event")
            } 
         }, function(error) { // handle errors
          console.log(error)
    });
    Generic

     








⌂ To get familiar with the whole process and the other steps, kindly navigate to our "The React Native 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.