Синтаксис подтверждения () и обновления () платежного шлюза Opencart

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

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

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

$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

Решение

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

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

Если вам нужно отправить обновление

ложный

изменить на

правда

1

Другие решения

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

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

$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. Но, насколько я знаю, если вы используете это для нового заказа, то он не будет отправлять электронное письмо пользователю в отличие от подтверждения ().

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

0

По вопросам рекламы [email protected]