2015-07-23 6 views
0
)

Я пытаюсь разработать свой первый платежный шлюз в Opencart, но у меня возникли проблемы с обработкой заказа после успешной оплаты или отмены платежа.Синтаксис подтверждения платежа() и update() 0 (

Это потому, что я не могу найти синтаксис функций подтверждения и обновления.

Я нашел это где-то:

$this->model_checkout_order->update(
     $order_id, 
     $order_status, 
     "", 
     true 
    ); 

Но я просто переменную Order_ID, но я не уверен, о других. Как, где я их устанавливаю или что он должен содержать?

Вот мой код (функция обратного вызова):

public function callback() { 
if (isset($this->request->post['merchant_refID'])) { 
    $order_id = $this->request->post['merchant_refID']; 
} else { 
    die('Illegal Access'); 
} 

$this->load->model('checkout/order'); 
$order_info = $this->model_checkout_order->getOrder($order_id); 

if ($order_info) { 
    $data = array_merge($this->request->post,$this->request->get); 

    //I am using mail function to verify transaction and it is working fine 
    if ($data['status'] == '0') { 
    mail('[email protected]','success','Success' ,'From: [email protected]'); 
    }else if ($data['status'] == '-22') { 
    mail('[email protected]','failed','amount low' ,'From: [email protected]'); 
    }else if ($data['status'] == '-202') { 
    mail('[email protected]','failed','bank low' ,'From: [email protected]'); 
    }else if ($data['status'] == '-300') { 
    mail('[email protected]','failed','bank high' ,'From: [email protected]'); 
    }else if ($data['status'] == '-305') { 
    mail('[email protected]','failed','failed' ,'From: [email protected]'); 
    }else if ($data['status'] == '-999') { 
    mail('[email protected]','failed','other' ,'From: [email protected]'); 
    } 
} 
} 

Как обновить или подтвердить свой заказ? Есть ли для этого руководство? Я действительно смущен!

ответ

0

Мне удалось разобраться в работе, и я публикую то же самое. Пожалуйста, исправьте меня, если я ошибаюсь, но насколько я знаю,

Функция confirm() должна использоваться для подтверждения нового заказа и дальнейшей обработки. Например, если вы делаете заказ, и вы сделали платеж. Здесь вам нужно будет использовать функцию confirm(), чтобы отправить заказ и отправить электронное письмо покупателю. Пример функции подтверждающей():

$this->model_checkout_order->confirm($order_id, 2, $message, true); 

Это будет означать статус $ Order_ID до 2 (т.е. в моем случае) Обработка. Вы можете проверить другой код состояния в своей базе данных (таблица: order_status).

С другой стороны, функция update() используется для обновления статуса заказа (не совсем уверен в этом). Как вы можете изменить код состояния его использования:

$this->model_checkout_order->update($order_id, 10, $message, true); 

Здесь он изменит статус заказа до 10 (то есть в моем случае) Failed. Но насколько я знаю, если вы используете это для нового заказа, он не отправит электронное письмо пользователю, в отличие от подтверждения().

$ сообщение, очевидно, сообщение, которое вы хотите добавить.

+0

Не могли бы вы пояснить свой ответ? Это больше напоминает заметки, чем ответ на вопрос. Если этот ответ уже предоставлен кем-то другим, я предлагаю предоставить атрибуцию. – onebree

+0

@HunterStevens Если вы снова прочитали мой вопрос, я попросил пример функций update() и confirm().И если вы снова прочтете мой ответ, я объяснил это только. Кроме того, я понял это сам, поэтому я говорил, что не уверен, что я прав, и все в порядке ... Престижность! – Saifi

+0

Я столкнулся с вашим ответом в очереди просмотра и прокомментировал его только на основе качества ответа. Видя, что вы задали вопрос Q, теперь имеет смысл – onebree

1

вам нужно добавить эту строку перед тем почтой функцией

$this->model_checkout_order->update($order_id, $this->config->get('some-payment_order_status_id'), $comment, false); 

Если вам необходимо отправить обновление

ложного изменение

к

правда

+0

Вы ответили на 50% моего вопроса. Я с тобой согласен! Спасибо за Ваш ответ. – Saifi

 Смежные вопросы

  • Нет связанных вопросов^_^