Page MenuHomeIn-Portal Phabricator

google_checkout_notify.php
No OneTemporary

File Metadata

Created
Mon, Sep 29, 9:49 PM

google_checkout_notify.php

<?php
/**
* @version $Id: google_checkout_notify.php 16516 2017-01-20 14:12:22Z alex $
* @package In-Commerce
* @copyright Copyright (C) 1997 - 2009 Intechnic. All rights reserved.
* @license Commercial License
* This software is protected by copyright law and international treaties.
* Unauthorized reproduction or unlicensed usage of the code of this program,
* or any portion of it may result in severe civil and criminal penalties,
* and will be prosecuted to the maximum extent possible under the law
* See http://www.in-portal.org/commercial-license for copyright notices and details.
*/
define('ADMIN', 1);
define('FULL_PATH', realpath(dirname(__FILE__) . '/../../../../../..'));
include_once(FULL_PATH.'/core/kernel/startup.php');
$application =& kApplication::Instance();
$application->Init();
$sql = 'SELECT PaymentTypeId FROM '.TABLE_PREFIX.'PaymentTypes AS pt
LEFT JOIN '.TABLE_PREFIX.'Gateways AS g ON g.GatewayId = pt.GatewayId
WHERE g.ClassName = "kGWGoogleCheckout"';
$payment_type_id = $application->Conn->GetOne($sql);
$application->SetVar('payment_type_id', $payment_type_id); // keep, because kGWGoogleCheckout::processNewOrderNotification relies on this
/** @var OrdersItem $order */
$order = $application->recallObject('ord', null, Array ('skip_autoload' => true));
$gw_data = $order->getGatewayData($application->GetVar('payment_type_id'));
$application->registerClass( $gw_data['ClassName'], GW_CLASS_PATH.'/'.$gw_data['ClassFile'] );
$gateway_object = $application->recallObject( $gw_data['ClassName'] );
$transaction_status = $gateway_object->processNotification($gw_data['gw_params']);
$sql = 'UPDATE '.$order->TableName.'
SET TransactionStatus = '.$transaction_status.'
WHERE '.$order->IDField.' = '.$order->GetID();
$application->Conn->Query($sql);
$order->SetDBField('TransactionStatus', $transaction_status);
if ($transaction_status == 1) {
$application->SetVar('ord_id', $order->GetID()); // used in OrdersEventHandler::UpdateOrderItem
$application->HandleEvent(new kEvent('ord:OnCompleteOrder'));
}
$application->Done();

Event Timeline