API Pública para desarrolladores

La api pública pone a disposición un SDK en PHP para una fácil integración de cualquier script, para habilitar los pagos con bitcoin.

Registro en crystalpay

El primer paso es registrar una cuenta en crystalpay para solicitar una api key.

Solicitar API Key

Realizado el registro, en la sección integración api puede crear una nueva aplicación.

Instalación de SDK

Se puede realizar una instalación mediante Composer

composer require ocrend-software/crystalpay-php-client

Creación de un pago

La integración se resume en 6 simples pasos

# Previo autoloader
include 'vendor/autoload.php';

# Instanciar la configuración del cliente
$cliente = new \Crystalpay\CrystalBtc('API-KEY-PRIVADA');

# Elegir la entidad
$pagos = new \Crystalpay\Entities\Payment($cliente);

# Establecer el monto y la divisa
$pagos->setAmount(19.99, 'USD');

# Establecer un concepto
$pagos->setConcept('Venta de franela de mi ecommerce');

# Obtener la URL de redirección autorizada
$uri = $pagos->getAuthUri();

# Verificar si la respuesta es correcta
if(1 == $uri['success']) {
    # Redireccionar al usuario
    // $this->functions->redir($uri['uri']); (Sólo ocrend framework)
    // header('location: ' . $uri['uri']); (Desde php base)
} else {
    var_dump($uri);
    //dump($uri); (Sólo ocrend framework)
}

Callback del pago

Una vez crystalpay retorne el poder a su aplicación, se verifica el pago con estos simples pasos

# Previo autoloader
include 'vendor/autoload.php';

# Instanciar la configuración del cliente
$cliente = new \Crystalpay\CrystalBtc('API-KEY-PRIVADA');

# Elegir la entidad
$pagos = new \Crystalpay\Entities\Payment($cliente);

try {
     # Verificar si hubo respuesta positiva
    $gateway_response = $_GET['gateway_response'];
    // $token = $http->query->get('gateway_response'); (Sólo ocrend framework)
    if(1 == $gateway_response) {
        # Obtener información HTTP GET del parámetro payment_token=
        # El token SÓLAMENTE tiene al menos 120 segundos de vida desde que es generado
        $token = $_GET['payment_token'];
        // $token = $http->query->get('payment_token'); (Sólo ocrend framework)

        # Obtener la respuesta
        $payment = $pagos->paymentCreated($token);

        # Verificar respuesta
        if(1 == $payment['success']) {
            echo '¡El pago se realizó con éxito!, ésta url dejará de ser válida (token) para siempre.';
        }
    }

    throw new \Exception(true);
} catch(\Exception $e) {
    echo 'El pago no fue válido, o no se realizó, o la url (token) no es válida.';
}