makeapplepaypaymentService static method

Future<String> makeapplepaypaymentService({
  1. required BuildContext context,
  2. required String country,
  3. required String action,
  4. required String currency,
  5. required String amt,
  6. required String customerEmail,
  7. required String trackid,
  8. required String udf1,
  9. required String udf2,
  10. required String udf3,
  11. required String udf4,
  12. required String udf5,
  13. required String tokenizationType,
  14. required String merchantIdentifier,
  15. required String shippingCharge,
  16. required String companyName,
  17. required String metadata,
})

This method is use to perform Apple Pay transaction From Customer UserInterface

Implementation

static Future<String> makeapplepaypaymentService({
  required BuildContext context, required String country, required String action, required String currency, required String amt, required String customerEmail, required String trackid, required String udf1, required  String udf2, required String udf3, required String udf4, required String udf5, required String tokenizationType, required String merchantIdentifier, required String shippingCharge, required String companyName,required String metadata
}) async {
  assert(context != null, "context is null!!");
  dynamic applePaymentData;
  String appleRespdata="";


  try {
    final result = await InternetAddress.lookup('google.com');
    if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) {


      try {

        if (companyName.isEmpty) {
          showalertDailog(context, 'Error','Company Name should not be empty');
          ResponseConfig.startTrxn = false;
        }
        else if (shippingCharge.isEmpty) {
          showalertDailog(context, 'Error','Shipping Charges should not be empty');
          ResponseConfig.startTrxn = false;
        }
        else {

          var dblamt = double.parse(amt);
          var dblshippingcharge = double.parse(shippingCharge);

          List<PaymentItem> paymentItems1 = [
            PaymentItem(label: 'Label', amount: dblamt,shippingcharge: dblshippingcharge)
          ];

          // initiate payment
          applePaymentData = await ApplePayFlutter.makePayment(
            countryCode: country,
            currencyCode: currency,
            paymentNetworks: [
              PaymentNetwork.visa,
              PaymentNetwork.mastercard,
              PaymentNetwork.amex,
              PaymentNetwork.mada
            ],
            merchantIdentifier: merchantIdentifier,
            paymentItems: paymentItems1,
            customerEmail: customerEmail,
            customerName: "Demo User",
            companyName: companyName,

          );
          // _writetoFile(" Apple token Data :" + applePaymentData.toString());
        }
      }
        on PlatformException  catch(e){
          print('error caught: $e');
          print('Failed payment');
        }
      var totalcharge= double.parse(amt)+double.parse(shippingCharge);
      String strtlchr=totalcharge.toString();


    if(applePaymentData.toString().contains("code"))
      {
         return "";
      }
    else {
          var order = await applepayapi(
          context,
          country,
          action,
          currency,
          strtlchr,
          customerEmail,
          trackid,
          udf1,
          udf2,
          udf3,
          udf4,
          udf5,
          tokenizationType,
          applePaymentData,metadata);

          appleRespdata = order;
       }
      }
    }
    on SocketException catch (e) {
      print('error caught: $e');

      ResponseConfig.startTrxn = false;
    //appleRespdata = "Please check internet connection";

    showalertDailog(context, 'Alert', "Please check Internet Connection");
  }

  return appleRespdata;
}