La biblioteca PHP Coingate proporciona un acceso conveniente a la API Coingate de las aplicaciones escritas en el idioma PHP.
PHP 7.3.0 y más tarde.
Puede instalar la biblioteca a través del compositor. Ejecute el siguiente comando:
composer require coingate/coingate-php Si no desea usar compositor, puede descargar la última versión. Luego, para usar la biblioteca, incluya el archivo init.php .
require_once ( ' /path/to/coingate-php/init.php ' );La biblioteca requiere las siguientes extensiones para funcionar correctamente:
curl , aunque puede usar su propio cliente no CURL si lo prefierejsonSi usa el compositor, estas dependencias deben manejarse automáticamente. Si instala manualmente, querrá asegurarse de que estas extensiones estén disponibles.
Puede registrarse para obtener una cuenta de coingate en https://coingate.com para la producción y https://sandbox.coingate.com para las pruebas (sandbox).
Tenga en cuenta que para Sandbox debe generar credenciales de API separadas en https://sandbox.coingate.com. Las credenciales de API generadas en https://coingate.com no funcionarán para el modo Sandbox.
El uso de la biblioteca PHP Coingate parece:
$ client = new CoinGate Client ( ' YOUR_API_TOKEN ' ); Para usar el modo Sandbox, debe establecer el segundo parámetro en true .
$ client = new CoinGate Client ( ' YOUR_API_TOKEN ' , true );Si planea usar puntos finales de API públicos solamente, no se requiere autenticación.
$ client = new CoinGate Client ();
// if needed you can set configuration parameters later
$ client -> setApiKey ( ' YOUR_API_TOKEN ' );
$ client -> setEnvironment ( ' sandbox ' );La documentación completa de la API coingate se puede encontrar aquí
Un ejemplo de una aplicación que usa esta biblioteca se puede encontrar aquí
Cree un pedido en Coingate y redirige al comprador a la factura (Payment_URL).
$ params = [
' order_id ' => ' YOUR-CUSTOM-ORDER-ID-115 ' ,
' price_amount ' => 1050.99 ,
' price_currency ' => ' USD ' ,
' receive_currency ' => ' EUR ' ,
' callback_url ' => ' https://example.com/payments?token=6tCENGUYI62ojkuzDPX7Jg ' ,
' cancel_url ' => ' https://example.com/cart ' ,
' success_url ' => ' https://example.com/account/orders ' ,
' title ' => ' Order #112 ' ,
' description ' => ' Apple Iphone 13 '
];
try {
$ order = $ client -> order -> create ( $ params );
} catch ( CoinGate Exception ApiErrorException $ e ) {
// something went wrong...
// var_dump($e->getErrorDetails());
}
echo $ order -> id ;Colocar el orden creado con moneda de pago preseleccionada (BTC, LTC, ETH, etc.). Mostrar pagos_address y pay_amount para el comprador o redirigir a Payment_Url. Se puede usar para las facturas de etiqueta blanca.
$ checkout = $ client -> order -> checkout ( 7294 , [
' pay_currency ' => ' BTC '
]);Después de crear un pedido, obtendrá un ID de pedido. Esta identificación se utilizará para obtener solicitudes de pedido.
$ order = $ client -> order -> get ( 7294 );Recuperación de información de todos los pedidos colocados.
$ orders = $ client -> order -> list ([
' created_at ' => [
' from ' => ' 2022-01-25 '
]
]);Tipo de cambio actual para dos monedas, fiat o criptografía. Este punto final es público, la autenticación no es necesaria.
$ client -> getExchangeRate ( ' BTC ' , ' EUR ' );Tipos de cambio actuales para comerciantes y comerciantes. Este punto final es público, la autenticación no es necesaria.
$ client -> listExchangeRates ();Un punto final de control de salud para la API coingate. Este punto final es público, la autenticación no es necesaria.
$ client -> ping ();Obtener direcciones IP de servidores coingate
$ client -> getIPAddresses (); $ client -> getCurrencies ();
// Crypto + Native + Merchant Pay
$ client -> getCheckoutCurrencies ();
// get Merchant Pay currencies only
$ client -> getMerchantPayCurrencies ();
// get Merchant Receive currencies only
$ client -> getMerchantPayoutCurrencies (); $ client -> getPlatforms ();Para modificar los tiempos de espera de solicitud (conectar o total, en segundos) deberá decirle al cliente API que use un curllient que no sea su valor predeterminado. Establecerá los tiempos de espera en ese curlle.
// set up your tweaked Curl client
$ curl = new CoinGate HttpClient CurlClient ();
$ curl -> setTimeout ( 10 );
$ curl -> setConnectTimeout ( 5 );
// tell CoinGate Library to use the tweaked Curl client
CoinGate Client:: setHttpClient ( $ curl );
// use the CoinGate API client as you normally would $ result = CoinGate Client:: testConnection ( ' YOUR_API_TOKEN ' ); Para probar la conexión API en el modo Sandbox, debe establecer el segundo parámetro en true .
$ result = CoinGate Client:: testConnection ( ' YOUR_API_TOKEN ' , true );¿Está escribiendo un complemento que integra coingate e incrusta nuestra biblioteca? Luego, use la función SetAppinfo para identificar su complemento. Por ejemplo:
CoinGate Client:: setAppInfo ( " MyAwesomePlugin " , " 1.0.0 " );El método debe llamarse una vez, antes de que se envíe cualquier solicitud a la API. El segundo parámetro es opcional.