Требование к платежному шлюзу — отправить вместе с запросом на получение successurl и errorurl. Эти URL-адреса предназначены для успешного заказа и отмененного заказа.
Алгоритм:
- Покупатель попадает к кассе заказа.
- Нажмите «Подтвердить заказ».
- Получается перенаправление на localhost/opencart/testkzm.php, где распечатываются значения и есть ссылка, по которой мне следует перейти. перенаправить в случае успеха.
Подход:
Я наивно полагал, что http://example.com/opencart/index.php?r ... ut/success — это ссылка на успех. . Появляется только сообщение с подтверждением, но заказ не размещен в системе. Я понимаю, что невозможно предоставить внешнюю ссылку, которая автоматически будет знать, какой порядок подтвердить, поэтому должен ли я передавать зашифрованные уникальные значения в Successurl, чтобы по возвращении я мог расшифровать их и подтвердить заказ?
Пояснения к файлам:
- banktransfer.php — это файл, из которого opencart получает информацию система, такая как
идентификатор заказа, сумма заказа и т. д. - banktransfer.tpl — это файл шаблона
для рендеринга страницы в браузере. (Фактический интерфейс) < /li>
testkzm.php — это
простой файл, который я написал, чтобы проверить, получаю ли я правильные значения из
системы.
простой файл, который я написал, чтобы проверить, получаю ли я правильные значения из
системы.
banktransfer.php в контроллере/платеже
class ControllerPaymentBankTransfer extends Controller {
protected function index() {
$this->language->load('payment/bank_transfer');
$this->data['text_instruction'] = $this->language->get('text_instruction');
$this->data['text_description'] = $this->language->get('text_description');
$this->data['text_payment'] = $this->language->get('text_payment');
//Modified things for KZM
$order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']);
$this->data['orderIdKZM'] = $this->session->data['order_id'];
$this->data['amountKZM'] = $order_info['total'];
$this->data['merchantIdKZM'] = $this->language->get('merchantIdKZM');
$this->data['currencyKZM'] = $this->language->get('currencyKZM');
$this->data['titleKZM'] = $this->language->get('titleKZM');
$this->data['successuUlKZM'] = $this->language->get('successUrlKZM');
$this->data['errorUrlKZM'] = $this->language->get('errorUrlKZM');
$this->data['dateKZM'] = $this->language->get('dateKZM');
$this->data['signstrKZM'] = $this->language->get('signstrKZM');
$this->data['verKZM'] = $this->language->get('verKZM');
//KZM
$this->data['button_confirm'] = $this->language->get('button_confirm');
$this->data['bank'] = nl2br($this->config->get('bank_transfer_bank_' . $this->config->get('config_language_id')));
$this->data['continue'] = $this->url->link('checkout/success');
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/payment/bank_transfer.tpl')) {
$this->template = $this->config->get('config_template') . '/template/payment/bank_transfer.tpl';
} else {
$this->template = 'default/template/payment/bank_transfer.tpl';
}
$this->render();
}
public function confirm() {
$this->language->load('payment/bank_transfer');
$this->load->model('checkout/order');
$comment = $this->language->get('text_instruction') . "\n\n";
$comment .= $this->config->get('bank_transfer_bank_' . $this->config->get('config_language_id')) . "\n\n";
$comment .= $this->language->get('text_payment');
$this->model_checkout_order->confirm($this->session->data['order_id'], $this->config->get('bank_transfer_order_status_id'), $comment, true);
}
}
banktransfer.tpl
Подробнее здесь: https://stackoverflow.com/questions/154 ... ay-in-open