Я пытаюсь разработать свой первый платежный шлюз в 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]');
}
}
}
Как мне обновить или подтвердить мой заказ? Есть ли руководство для этого? Я действительно смущен!
вам нужно добавить эту строку перед функцией почты
$this->model_checkout_order->update($order_id, $this->config->get('some-payment_order_status_id'), $comment, false);
Если вам нужно отправить обновление
ложный
изменить на
правда
Мне удалось понять работу, и я публикую то же самое. Пожалуйста, поправьте меня, если я ошибаюсь, но насколько я знаю,
Функция подтверждения () должна использоваться для подтверждения нового заказа и дальнейшей его обработки. Например, если вы размещаете заказ и сделали платеж. Здесь вам нужно будет использовать функцию подтверждения (), чтобы отправить заказ и отправить электронное письмо покупателю. Пример функции 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 — это, очевидно, сообщение, которое вы хотите добавить.