function tc_ipn_callback($reference_id, $merchant_id) { $tc = new TotalCoinAPI(MODULE_PAYMENT_TOTALCOIN_CLIENT_EMAIL, MODULE_PAYMENT_TOTALCOIN_CLIENT_APIKEY); $data = $tc->get_ipn_info($reference_id); if ($data['IsOk']) { $order_status = $this->tc_get_last_order_status_from_transaction_history($data['Response']['TransactionHistories']); $order_id = $data['Response']['MerchantReference']; switch ($order_status) { case 'Approved': $status = 1; $comments = 'La orden ha sido autorizada, se está esperando la liberación del pago.'; break; case 'Rejected': $status = 1; $comments = 'Pago rechazado por TotalCoin, contactar al cliente.'; break; case 'Available': $status = 3; $comments = 'La orden ha sido pagada. El dinero ya se encuentra disponible.'; break; default: $status = 2; //In process $comments = 'La orden está siendo procesada.'; break; } /* orders_status_id 1 | orders_status_name Pending orders_status_id 2 | orders_status_name Processing orders_status_id 3 | orders_status_name Delivered */ $data = array('orders_status' => $status); tep_db_perform('orders', $data, 'update', "orders_id = '" . $order_id . "'"); $data_history = array('orders_id' => $order_id, 'orders_status_id' => $status, 'date_added' => 'now()', 'customer_notified' => '0', 'comments' => $comments); tep_db_perform('orders_status_history', $data_history); } }
function tc_ipn_callback() { global $wpdb; if ($_REQUEST['reference'] != '' && $_REQUEST['merchant'] != '') { $tc_id = $_REQUEST['reference']; $api_key = get_option('totalcoin_apikey'); $tc = new TotalCoinAPI("", $api_key); $data = $tc->get_ipn_info($tc_id); if ($data['IsOk']) { $order_status = tc_get_last_order_status_from_transaction_history($data['Response']['TransactionHistories']); $order_id = $data['Response']['MerchantReference']; switch ($order_status) { case 'Approved': $purchase_log_sql = "UPDATE `" . WPSC_TABLE_PURCHASE_LOGS . "` SET transactid = " . $tc_id . ", processed = 3, notes = 'La orden ha sido autorizada, se está esperando la liberación del pago.' WHERE id= '" . $order_id . "' LIMIT 1"; break; case 'InProccess': $purchase_log_sql = "UPDATE `" . WPSC_TABLE_PURCHASE_LOGS . "` SET transactid = " . $tc_id . ", processed = 2, notes = 'La orden está siendo procesada.' WHERE id= '" . $order_id . "' LIMIT 1"; break; case 'Rejected': $purchase_log_sql = "UPDATE `" . WPSC_TABLE_PURCHASE_LOGS . "` SET transactid = " . $tc_id . ", processed = 6, notes = 'Pago rechazado por TotalCoin, contactar al cliente.' WHERE id= '" . $order_id . "' LIMIT 1"; break; default: $purchase_log_sql = "UPDATE `" . WPSC_TABLE_PURCHASE_LOGS . "` SET transactid = '" . $tc_id . "', processed = 2, notes = 'La orden ha sido pagada. El dinero ya se encuentra disponible.' WHERE id= '" . $order_id . "' LIMIT 1"; } $purchase_log = $wpdb->get_results($purchase_log_sql, ARRAY_A); } } }