Интеграции
Приём криптоплатежей в OpenCart
Платёжные расширения OpenCart строятся по фиксированной структуре (контроллер, модель и шаблон в extension/crybit/payment). Контроллер создаёт счёт CryBit на сумму заказа и отправляет клиента на страницу оплаты.
Обработчик подтверждения
PHP (extension/crybit/payment/crybit.php)
public function confirm() {
$order = $this->model_checkout_order->getOrder($this->session->data['order_id']);
$ch = curl_init('https://api.crybit.net/api/v1/payments');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['X-Public-Key: ' . $this->config->get('crybit_public_key'), 'X-Private-Key: ' . $this->config->get('crybit_private_key'), 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'amount' => (float) $order['total'],
'currency' => $order['currency_code'],
'order_id' => (string) $order['order_id'],
'return_url' => $this->url->link('checkout.success'),
]),
]);
$inv = json_decode(curl_exec($ch), true);
$this->response->redirect($inv['callback_url']);
}Статус заказа при оплате
Небольшой контроллер за вебхуком CryBit проверяет подпись и вызывает addOrderHistory() с id статуса «в обработке», сопоставляя по order_id.
Вопросы и ответы
Есть ли расширение в OpenCart Marketplace?
Пока нет — сегодня путь интеграции такой: контроллер выше на том же публичном API, что и остальные интеграции.
