Opencart 支付网关 confirm() 和 update() 语法
Opencart payment gateway confirm() and update() syntax
我正在尝试在 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('a@a.com','success','Success' ,'From: b@b.com');
}else if ($data['status'] == '-22') {
mail('a@a.com','failed','amount low' ,'From: b@b.com');
}else if ($data['status'] == '-202') {
mail('a@a.com','failed','bank low' ,'From: b@b.com');
}else if ($data['status'] == '-300') {
mail('a@a.com','failed','bank high' ,'From: b@b.com');
}else if ($data['status'] == '-305') {
mail('a@a.com','failed','failed' ,'From: b@b.com');
}else if ($data['status'] == '-999') {
mail('a@a.com','failed','other' ,'From: b@b.com');
}
}
}
如何更新或确认我的订单?有这方面的指南吗?我真的很困惑!
您需要在邮件功能之前添加此字符串
$this->model_checkout_order->update($order_id, $this->config->get('some-payment_order_status_id'), $comment, false);
如果您需要发送更新
false
更改为
true
我已经设法理解了工作原理,并且我正在发布相同的内容。如果我错了请纠正我,但据我所知,
必须使用 confirm() 函数来确认新订单并进一步处理它。例如,如果您正在下订单并已付款。在这里,您需要使用 confirm() 函数来提交订单并向买家发送电子邮件。 confirm() 函数示例:
$this->model_checkout_order->confirm($order_id, 2, $message, true);
这会将 $order_id 的状态标记为 2,即(在我的例子中)处理中。您可以检查数据库中的其他状态代码 (table : order_status).
另一方面,update() 函数用于更新订单状态(对此不太确定)。就像您可以使用 :
更改它的状态代码一样
$this->model_checkout_order->update($order_id, 10, $message, true);
在这里,它会将订单状态更改为 10,即(在我的例子中)失败。但据我所知,如果你将它用于新订单,那么它不会像 confirm() 那样向用户发送电子邮件。
$message 显然是您要添加的消息。
我正在尝试在 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('a@a.com','success','Success' ,'From: b@b.com');
}else if ($data['status'] == '-22') {
mail('a@a.com','failed','amount low' ,'From: b@b.com');
}else if ($data['status'] == '-202') {
mail('a@a.com','failed','bank low' ,'From: b@b.com');
}else if ($data['status'] == '-300') {
mail('a@a.com','failed','bank high' ,'From: b@b.com');
}else if ($data['status'] == '-305') {
mail('a@a.com','failed','failed' ,'From: b@b.com');
}else if ($data['status'] == '-999') {
mail('a@a.com','failed','other' ,'From: b@b.com');
}
}
}
如何更新或确认我的订单?有这方面的指南吗?我真的很困惑!
您需要在邮件功能之前添加此字符串
$this->model_checkout_order->update($order_id, $this->config->get('some-payment_order_status_id'), $comment, false);
如果您需要发送更新
false
更改为
true
我已经设法理解了工作原理,并且我正在发布相同的内容。如果我错了请纠正我,但据我所知,
必须使用 confirm() 函数来确认新订单并进一步处理它。例如,如果您正在下订单并已付款。在这里,您需要使用 confirm() 函数来提交订单并向买家发送电子邮件。 confirm() 函数示例:
$this->model_checkout_order->confirm($order_id, 2, $message, true);
这会将 $order_id 的状态标记为 2,即(在我的例子中)处理中。您可以检查数据库中的其他状态代码 (table : order_status).
另一方面,update() 函数用于更新订单状态(对此不太确定)。就像您可以使用 :
更改它的状态代码一样 $this->model_checkout_order->update($order_id, 10, $message, true);
在这里,它会将订单状态更改为 10,即(在我的例子中)失败。但据我所知,如果你将它用于新订单,那么它不会像 confirm() 那样向用户发送电子邮件。
$message 显然是您要添加的消息。