Интеграции

Приём криптоплатежей в 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, что и остальные интеграции.

Другие платформы

Получите API-ключ