Plugin Directory

Changeset 3235069


Ignore:
Timestamp:
02/04/2025 11:36:26 PM (14 months ago)
Author:
bigmaster
Message:

adding ajax call

File:
1 edited

Legend:

Unmodified
Added
Removed
  • payaza/trunk/assets/js/payaza.min.js

    r3228712 r3235069  
     1jQuery(function ($) {
     2  let payaza_submit = false;
    13
    2 jQuery(function ($) {
    3     let payaza_submit = false
    4  
    5     $('#wc-payaza-form').hide()
    6  
    7     wcPayazaFormHandler()
    8  
    9     jQuery('#payaza-payment-button').click(function () {
    10       return wcPayazaFormHandler()
    11     })
    12  
    13     jQuery('#payaza_form form#order_review').submit(function () {
    14       return wcPayazaFormHandler()
    15     })
    16  
    17     function wcPayazaFormHandler () {
    18       $('#wc-payaza-form').hide()
    19  
    20       if (payaza_submit) {
    21         payaza_submit = false
    22         return true
     4  $("#wc-payaza-form").hide();
     5
     6  wcPayazaFormHandler();
     7
     8  jQuery("#payaza-payment-button").click(function () {
     9    return wcPayazaFormHandler();
     10  });
     11
     12  jQuery("#payaza_form form#order_review").submit(function () {
     13    return wcPayazaFormHandler();
     14  });
     15
     16  function wcPayazaFormHandler() {
     17    $("#wc-payaza-form").hide();
     18
     19    if (payaza_submit) {
     20      payaza_submit = false;
     21      return true;
     22    }
     23
     24    let $form = $("form#payment-form, form#order_review"),
     25      payaza_txnref = $form.find("input.payaza_txnref");
     26
     27    payaza_txnref.val("");
     28
     29    let amount = Number(wc_payaza_params.amount);
     30
     31    const isLiveMode = wc_payaza_params.connection_mode === "Live";
     32
     33    let payaza_callback = function (response) {
     34      $form.append(
     35        '<input type="hidden" class="payaza_txnref" name="payaza_txnref" value="' +
     36          response.trxref +
     37          '"/>'
     38      );
     39      payaza_submit = true;
     40
     41      $form.submit();
     42
     43      $("body").block({
     44        message: null,
     45        overlayCSS: {
     46          background: "#fff",
     47          opacity: 0.6,
     48        },
     49        css: {
     50          cursor: "wait",
     51        },
     52      });
     53
     54      if (response.type === "success") {
     55        $.ajax({
     56          url: wc_payaza_params.update_order_url, // Ensure this is set in your backend
     57          type: "POST",
     58          data: {
     59            order_id: wc_payaza_params.order_id, // Order ID from WooCommerce
     60            transaction_reference: wc_payaza_params.txnref, // Transaction reference from Payaza
     61            status: "completed", // You can modify this based on actual transaction status
     62          },
     63          success: function (res) {
     64            if (res.success) {
     65              console.log("Order updated successfully:", res);
     66              window.location.href = wc_payaza_params.thank_you_url; // Redirect to Thank You page
     67            } else {
     68              console.log("Failed to update order status.");
     69            }
     70          },
     71          error: function (err) {
     72            console.error("Error updating order status:", err);
     73          },
     74        });
    2375      }
    24  
    25       let $form = $('form#payment-form, form#order_review'),
    26         payaza_txnref = $form.find('input.payaza_txnref')
    27  
    28       payaza_txnref.val('')
    29  
    30       let amount = Number(wc_payaza_params.amount)
    31  
    32       const isLiveMode = wc_payaza_params.connection_mode === 'Live';
     76    };
    3377
     78    payazaCheckout = PayazaCheckout.setup({
     79      merchant_key: wc_payaza_params.key,
     80      connection_mode: isLiveMode ? "Live" : "Test",
     81      checkout_amount: amount / 100,
     82      currency_code: wc_payaza_params.currency,
     83      email_address: wc_payaza_params.email,
     84      first_name: wc_payaza_params.first_name,
     85      last_name: wc_payaza_params.last_name,
     86      phone_number: wc_payaza_params.phone_number,
     87      transaction_reference: wc_payaza_params.txnref,
    3488
    35  
    36       let payaza_callback = function (response) {
    37         $form.append(
    38           '<input type="hidden" class="payaza_txnref" name="payaza_txnref" value="' +
    39             response.trxref +
    40             '"/>'
    41         )
    42         payaza_submit = true
    43  
    44         $form.submit()
    45  
    46         $('body').block({
    47           message: null,
    48           overlayCSS: {
    49             background: '#fff',
    50             opacity: 0.6
    51           },
    52           css: {
    53             cursor: 'wait'
    54           }
    55         })
    56       }
    57  
    58       payazaCheckout = PayazaCheckout.setup({
    59         merchant_key: wc_payaza_params.key,
    60         connection_mode: isLiveMode ? 'Live' : 'Test',
    61         checkout_amount: amount / 100,
    62         currency_code: wc_payaza_params.currency,
    63         email_address: wc_payaza_params.email,
    64         first_name: wc_payaza_params.first_name,
    65         last_name: wc_payaza_params.last_name,
    66         phone_number: wc_payaza_params.phone_number,
    67         transaction_reference: wc_payaza_params.txnref,
    68      
    69         onClose: function () {},
    70  
    71         callback: function (callbackResponse) {
    72           console.log('callback response', callbackResponse)
     89      onClose: function (response) {},
    7390
    74         }
    75       })
    76  
    77       function callback (callbackResponse) {
    78         console.log('callbackResponse: ', callbackResponse)
    79        payaza_callback(callbackResponse)
    80        window.location.href = wc_payaza_params.thank_you_url;
     91      callback: function (callbackResponse) {
     92        console.log("callback response", callbackResponse);
     93      },
     94    });
    8195
    82       }
    83  
    84       function onClose () {
    85         console.log('closed')
    86       }
    87  
    88  
    89       payazaCheckout.setCallback(callback)
    90       payazaCheckout.setOnClose(onClose)
    91  
    92       // Display popup
    93       payazaCheckout.showPopup()
    94  
    95       return true
     96    function callback(callbackResponse) {
     97      console.log("callbackResponse: ", callbackResponse);
     98      payaza_callback(callbackResponse);
    9699    }
    97   })
    98  
     100
     101    function onClose() {
     102      console.log("closed");
     103    }
     104
     105    payazaCheckout.setCallback(callback);
     106    payazaCheckout.setOnClose(onClose);
     107
     108    // Display popup
     109    payazaCheckout.showPopup();
     110
     111    return true;
     112  }
     113});
Note: See TracChangeset for help on using the changeset viewer.