PNG  IHDR pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_F@8N ' p @8N@8}' p '#@8N@8N pQ9p!i~}|6-ӪG` VP.@*j>[ K^<֐Z]@8N'KQ<Q(`s" 'hgpKB`R@Dqj '  'P$a ( `D$Na L?u80e J,K˷NI'0eݷ(NI'؀ 2ipIIKp`:O'`ʤxB8Ѥx Ѥx $ $P6 :vRNb 'p,>NB 'P]-->P T+*^h& p '‰a ‰ (ĵt#u33;Nt̵'ޯ; [3W ~]0KH1q@8]O2]3*̧7# *p>us p _6]/}-4|t'|Smx= DoʾM×M_8!)6lq':l7!|4} '\ne t!=hnLn (~Dn\+‰_4k)0e@OhZ`F `.m1} 'vp{F`ON7Srx 'D˸nV`><;yMx!IS钦OM)Ե٥x 'DSD6bS8!" ODz#R >S8!7ّxEh0m$MIPHi$IvS8IN$I p$O8I,sk&I)$IN$Hi$I^Ah.p$MIN$IR8I·N "IF9Ah0m$MIN$IR8IN$I 3jIU;kO$ɳN$+ q.x* tEXtComment

Viewing File: /home/u456810272/domains/globalsoftech.org.in/public_html/crm2/modules/ideal/ideal.php

<?php

defined('BASEPATH') or exit('No direct script access allowed');
/*
Module Name: Stripe Ideal V2
Description: Stripe Ideal Payment module
Version: 1.0.0
Requires at least: 3.1.6
*/

const IDEAL_MODULE_NAME       = 'ideal';
const IDEAL_MODULE_GATEWAY_ID = 'Ideal_gateway';

// register_language_files(IDEAL_MODULE_NAME, [IDEAL_MODULE_NAME]);
register_payment_gateway(IDEAL_MODULE_GATEWAY_ID, IDEAL_MODULE_NAME);
register_activation_hook(IDEAL_MODULE_NAME, 'idealModuleActivation');

function idealModuleActivation()
{
    add_option('ideal_module_stripe_webhook_id');
    add_option('ideal_module_stripe_webhook_signing_secret');
}

/**
 * Get the necessary Stripe integration webhook events
 */
function idealModuleWebhookEvents(): array
{
    return [
        Stripe\Event::TYPE_PAYMENT_INTENT_SUCCEEDED,
    ];
}

/**
 * @param array{id: string, active: string, instance: Ideal_gateway} $gateway
 */
function idealModuleWebhookCheck(array $gateway): void
{
    if ($gateway['id'] === IDEAL_MODULE_GATEWAY_ID) {
        $idealGateway = $gateway['instance'];
        if ($idealGateway->hasSecretKey() && $gateway['active'] == '1') {
            try {
                $webhook = $idealGateway->getCurrentWebhookObject();
            } catch (Exception $e) {
                echo '<div class="alert alert-warning">';
                // useful when user add wrong keys
                // e.q. This API call cannot be made with a publishable API key. Please use a secret API key. You can find a list of your API keys at https://dashboard.stripe.com/account/apikeys.
                echo $e->getMessage();
                echo '</div>';

                return;
            }

            $environment = $idealGateway->environment();
            $endpoint    = $idealGateway->getWebhookEndPoint();
            $CI          = &get_instance();
            if ($CI->session->has_userdata('stripe-webhook-failure')) {
                echo '<div class="alert alert-warning" style="margin-bottom:15px;">';
                echo '<h4>Error: ' . $CI->session->userdata('stripe-webhook-failure') . '</h4>';
                echo 'The system was unable to create the <b>required</b> webhook endpoint for Stripe.';
                echo '<br />You should consider creating webhook manually directly via Stripe dashboard for your environment (' . $environment . ')';
                echo '<br /><br /><b>Webhook URL:</b><br />' . $endpoint;
                echo '<br /><br /><b>Webhook events:</b><br />' . implode(',<br />', idealModuleWebhookEvents());
                echo '</div>';
            }

            if (! $webhook || ! startsWith($webhook->url, site_url())) {
                echo '<div class="alert alert-warning">';
                echo 'Webhook endpoint (' . $endpoint . ') not found for ' . $environment . ' environment.';
                echo '<br />Click <a href="' . site_url('ideal/create_webhook') . '">here</a> to create the webhook directly in Stripe.';
                echo '</div>';
            } elseif ($webhook->id != get_option('ideal_module_stripe_webhook_id')) {
                echo '<div class="alert alert-warning">';
                echo 'The application stored Stripe webhook id does not match the configured webhook.';
                echo '<br />Click <a href="' . site_url('ideal/create_webhook?recreate=true') . '">here</a> to re-create the webhook directly in Stripe and delete the old webhook.';
                echo '</div>';
            } elseif ($webhook->status != 'enabled') {
                echo '<div class="alert alert-warning">';
                echo 'Your Stripe configured webhook is disabled, you should consider enabling your webhook via Stripe dashboard or by clicking <a href="' . site_url('ideal/enable_webhook') . '">here</a>.';
                echo '</div>';
            }
        }
    }
}

hooks()->add_action('before_update_system_options', 'prevent_activate_ideal_gateway');
function prevent_activate_ideal_gateway($systemOptions): void
{
    /** @var CI&object{'ideal_gateway': Ideal_gateway} $ci */
    $ci = &get_instance();
    $ci->load->library('ideal_gateway');
    $options = $systemOptions['settings'];

    if (!is_array($options)) {
        // prevent bugs from module breaking the feature, e.g. third-party module developer did not wrap add value to settings[]
        return;
    }

    if (! array_key_exists('paymentmethod_Ideal_gateway_active', $options)) {
        return;
    }

    $idealKeyEmpty      = empty($options['paymentmethod_Ideal_gateway_api_publishable_key']) || empty($options['paymentmethod_Ideal_gateway_api_secret_key']);
    $idealGatewayActive = $options['paymentmethod_Ideal_gateway_active'] == '1';

    if ($idealKeyEmpty && $idealGatewayActive) {
        $ci->ideal_gateway->markAsInactive();
        set_alert('danger', _l('ideal_gateway_cannot_be_activated_keys_not_configured'));
        redirect(admin_url('settings?group=payment_gateways&tab=online_payments_Ideal_gateway_tab'));
    }
}
Back to Directory=ceiIENDB`