La API de pasarela de pago Paykassa

La API de Paykassa una solución versátil para el trabajo con la línea de los pagos a criptomonedas.

La dirección IP del servidor de envío de la notificación para el SCI: 54.37.60.196, 51.91.80.241, 138.68.137.53, 165.232.140.156, 2604:a880:4:1d0::1d1:d000. La lista de IP actual se puede obtener en formato de texto por URL: https://paykassa.pro/ips.txt, JSON: https://paykassa.pro/ips.php

Inicio rápido para aquellos que
la pereza de estudiar la documentación detallada

Obtenemos la dirección para el pago de criptomonedas

No se olvide. Conectar el SCI clase, especificar "Merchant ID" y "Merchant Password".

<!-- La facturación en el pago, la adquisición de la dirección para el pago de --> <?php require_once('paykassa_sci.class.php'); //conectamos la clase para trabajar con SCI, se puede descargar de enlace $paykassa_merchant_id = 'your_merchant_id'; // identificador durante la noche $paykassa_merchant_password = 'your_merchant_password'; // la contraseña durante la noche $test = false; // Modo de prueba falso - Desactivado, True - habilitado $amount = 0.350; $system = 'bitcoin'; $currency = 'BTC'; $order_id = 'shop_377'; $comment = 'comment'; $paykassa = new PayKassaSCI( $paykassa_merchant_id, $paykassa_merchant_password, $test ); $system_id = [ "bitcoin" => 11, // monedas admitidas BTC "ethereum" => 12, // monedas admitidas ETH "litecoin" => 14, // monedas admitidas LTC "dogecoin" => 15, // monedas admitidas DOGE "dash" => 16, // monedas admitidas DASH "bitcoincash" => 18, // monedas admitidas BCH "zcash" => 19, // monedas admitidas ZEC "ripple" => 22, // monedas admitidas XRP "tron" => 27, // monedas admitidas TRX "stellar" => 28, // monedas admitidas XLM "binancecoin" => 29, // monedas admitidas BNB "tron_trc20" => 30, // monedas admitidas USDT "binancesmartchain_bep20" => 31, // monedas admitidas USDT, BUSD, USDC, ADA, EOS, BTC, ETH, DOGE "ethereum_erc20" => 32, // monedas admitidas USDT ]; $res = $paykassa->sci_create_order_get_data( $amount, // obligatorio, el importe del pago, ejemplo: 1.0433 $currency, // obligatorio, moneda, ejemplo: BTC $order_id, // obligatorio, id numérico único de pago en el sistema, ejemplo: 150800 $comment, // obligatorio, un comentario de texto de pago, ejemplo: la Orden de servicio #150800 $system_id[$system] // obligatorio, ejemplo: 12 - Ethereum ); if ($res['error']) { // $res['error'] - true si el error echo $res['message']; // $res['message'] - el texto del mensaje de error // acciones en caso de error } else { $invoice = $res['data']['invoice']; // El número de operaciones en el sistema Paykassa.pro $order_id = $res['data']['order_id']; // Orden comercial $wallet = $res['data']['wallet']; // La dirección para el pago de $amount = $res['data']['amount']; // El monto del pago puede cambiar si la comisión se transfiere al cliente $system = $res['data']['system']; // Un sistema en el que la factura $url = $res['data']['url']; // El enlace para la transición al pago de $tag = $res['data']['tag']; // La etiqueta, especificar en la traducción para el ripple echo 'Send funds to this address '.$wallet . ( !empty($tag) ? ' Tag: ' . $tag : '' ) . ' Balance will be updated automatically.'; //Send funds to this address 32e6LAW8Nps9GJMSQK4Busm6UUUkUc4tzE. Balance will be updated automatically. } ?> <!-- /.La facturación en el pago, la adquisición de la dirección para el pago de -->

La facturación en el pago de

No se olvide. Conectar el SCI clase, especificar "Merchant ID" y "Merchant Password". También escribe la acción en caso de error y procese el pago.

<!-- Facturación --> <?php require_once('paykassa_sci.class.php'); //conectamos la clase para trabajar con SCI, se puede descargar de enlace $paykassa_merchant_id = 'your_merchant_id'; $paykassa_merchant_password = 'your_merchant_password'; $test = false; // Modo de prueba falso - Desactivado, True - habilitado $amount = 0.350; $system = 'bitcoin'; $currency = 'BTC'; $order_id = 'shop_377'; $comment = 'comment'; $paykassa = new PayKassaSCI( $paykassa_merchant_id, // identificador durante la noche $paykassa_merchant_password, // la contraseña durante la noche $test ); $system_id = [ "perfectmoney" => 2, // monedas admitidas USD "berty" => 7, // monedas admitidas RUB, USD "bitcoin" => 11, // monedas admitidas BTC "ethereum" => 12, // monedas admitidas ETH "litecoin" => 14, // monedas admitidas LTC "dogecoin" => 15, // monedas admitidas DOGE "dash" => 16, // monedas admitidas DASH "bitcoincash" => 18, // monedas admitidas BCH "zcash" => 19, // monedas admitidas ZEC "ripple" => 22, // monedas admitidas XRP "tron" => 27, // monedas admitidas TRX "stellar" => 28, // monedas admitidas XLM "binancecoin" => 29, // monedas admitidas BNB "tron_trc20" => 30, // monedas admitidas USDT "binancesmartchain_bep20" => 31, // monedas admitidas USDT, BUSD, USDC, ADA, EOS, BTC, ETH, DOGE "ethereum_erc20" => 32, // monedas admitidas USDT ]; $res = $paykassa->sci_create_order( $amount, // obligatorio, el importe del pago, ejemplo: 1.0433 $currency, // obligatorio, moneda, ejemplo: BTC $order_id, // obligatorio, id numérico único de pago en el sistema, ejemplo: 150800 $comment, // obligatorio, un comentario de texto de pago, ejemplo: la Orden de servicio #150800 $system_id[$system] // el parámetro requerido, especificando Usted pasando merchant desvía en el sistema de pago, ejemplo: 12 - Ethereum ); if ($res['error']) { // $res['error'] - true si el error echo $res['message']; // $res['message'] - el texto del mensaje de error //acciones en caso de error } else { // la formación de la forma de pago ?> <form action="<?php echo $res["data"]["url"]; ?>" method="POST"> <button>Pagar</button> </form> <?php } ?> <!-- /.Facturación -->

Control de pago

No se olvide. Conectar el SCI clase, especificar "Merchant ID" y "Merchant Password". También trate el error al verificar el pago y escribe los pasos al repago y недоплате el pago.

<?php require_once('paykassa_sci.class.php'); // conectamos la clase para trabajar con SCI, se puede descargar de enlace $paykassa_merchant_id = 'your_merchant_id'; $paykassa_merchant_password = 'your_merchant_password'; $test = false; // Modo de prueba falso - Desactivado, True - habilitado $paykassa = new PayKassaSCI( $paykassa_merchant_id, // identificador durante la noche $paykassa_merchant_password, // la contraseña durante la noche $test ); //private_hash Enviamos una solicitud a la publicación al enviar IPN. Importante: para sci_confirm_order y sci_confirm_transaction_notification, diferentes URL en la configuración del comerciante. $res = $paykassa->sci_confirm_order($_POST["private_hash"]); if ($res['error']) { // $res['error'] - true si el error die($res['message']); // $res['message'] - el texto del mensaje de error // acciones en caso de error } else { // acciones en caso de éxito $id = $res["data"]["order_id"]; // id numérico único de pago en el sistema, ejemplo: 150800 $transaction = $res["data"]["transaction"]; // el número de transacción en el sistema paykassa: 96401 $hash = $res["data"]["hash"]; // hash, ejemplo: bde834a2f48143f733fcc9684e4ae0212b370d015cf6d3f769c9bc695ab078d1 $currency = $res["data"]["currency"]; // la moneda de pago, ejemplo: DASH $system = $res["data"]["system"]; // el sistema, ejemplo: Dash $address = $res["data"]["address"]; // la dirección de криптовалютного de la cartera, ejemplo: Xybb9RNvdMx8vq7z24srfr1FQCAFbFGWLg $tag = $res["data"]["tag"]; // Tag para Ripple y Stellar $partial = $res["data"]["partial"]; // configuración de la recepción de pagos en defecto o exceso, 'yes' - tomar, 'no' - no tomar $amount = (float)$res["data"]["amount"]; // la suma de la cuenta, ejemplo: 1.0000000 if ($partial === 'yes') { // el monto de la solicitud puede no coincidir con la cantidad recibida, si está activado el modo de pago parcial de la // sólo relevante para криптовалют, por defecto es 'no' } // su código de... echo $id.'|success'; // necesariamente, para la confirmación de la acreditación del pago } ?>

Manejo de notificaciones para transacciones entrantes

No se olvide. Conectar el SCI clase, especificar "Merchant ID" y "Merchant Password". También maneje los errores y verifique el estado de pago y el número de notificaciones.

<?php require_once('paykassa_sci.class.php'); // conectamos la clase para trabajar con SCI, se puede descargar de enlace $paykassa_merchant_id = 'your_merchant_id'; $paykassa_merchant_password = 'your_merchant_password'; $test = false; // Modo de prueba falso - Desactivado, True - habilitado $paykassa = new PayKassaSCI( $paykassa_merchant_id, // identificador durante la noche $paykassa_merchant_password, // la contraseña durante la noche $test ); //private_hash Enviamos una solicitud a la publicación al enviar IPN. Importante: para sci_confirm_order y sci_confirm_transaction_notification, diferentes URL en la configuración del comerciante. $res = $paykassa->sci_confirm_transaction_notification($_POST["private_hash"]); if ($res['error']) { // $res['error'] - true si el error die($res['message']); // $res['message'] - el texto del mensaje de error // acciones en caso de error } else { // acciones en caso de éxito $transaction = $res["data"]["transaction"]; // el número de transacción en el sistema paykassa: 2431548 $txid = $res["data"]["txid"]; // Transacción en una red de criptomonedas, ejemplo: 0xb97189db3555015c46f2805a43ed3d700a706b42fb9b00506fbe6d086416b602 $shop_id = $res["data"]["shop_id"]; // Su número de comerciante, ejemplo: 138 $id = $res["data"]["order_id"]; // id numérico único de pago en el sistema, ejemplo: 150800 $amount = (float)$res["data"]["amount"]; // cantidad recibida, ejemplo: 1.0000000 $fee = (float)$res["data"]["fee"]; // tarifa de procesamiento de pago: 0.0000000 $currency = $res["data"]["currency"]; // la moneda de pago, ejemplo: DASH $system = $res["data"]["system"]; // el sistema, ejemplo: Dash $address_from = $res["data"]["address_from"]; // dirección de la billetera de criptomoneda del pagador, ejemplo: 0x5d9fe07813a260857cf60639dac710ebb9531a20 $address = $res["data"]["address"]; // la dirección de криптовалютного de la cartera, ejemplo: Xybb9RNvdMx8vq7z24srfr1FQCAFbFGWLg $tag = $res["data"]["tag"]; // Tag para Ripple y Stellar - entero $confirmations = $res["data"]["confirmations"]; // Número actual de confirmaciones de red $required_confirmations = $res["data"]["required_confirmations"]; // Se requiere el número de confirmaciones de la red para la inscripción $status = $res["data"]["status"]; // yes-si el pago está acreditado $static = $res["data"]["static"]; // Siempre yes $date_update = $res["data"]["date_update"]; // Última actualización de información, ejemplo: "2018-07-23 16:03:08" $explorer_address_link = $res["data"]["explorer_address_link"]; // Enlace para ver la información de la dirección $explorer_transaction_link = $res["data"]["explorer_transaction_link"]; // Enlace para ver la información de la transacción if ($status !== 'yes') { //el pago aún no se ha acreditado // su código de... echo $id.'|success'; // confirmar la Recepción de la solicitud } else { //pago alistado // su código de... echo $id.'|success'; // necesariamente, para la confirmación de la acreditación del pago } } ?>

Los historiales de pago

No se olvide. Conectar el API de la clase, especificar "API ID", "API Password" y "Merchant ID". Y también tratar de acción cuando el pago de éxito o de error.

<!-- El pago de --> <?php require_once('paykassa_api.class.php'); // conectamos la clase para trabajar con la API, se puede descargar de enlace $paykassa_api_id = 'your_api_id'; $paykassa_api_password = 'your_api_password'; $paykassa_merchant_id = 'your_merchant_id'; $test = false; // Modo de prueba falso - Desactivado, True - habilitado $amount = 0.25; $system = "bitcoin"; $currency = 'BTC'; $wallet = '3D2oetdNuZUqQHPJmcMDDHYoqkyNVsFk9r'; $comment = 'comment'; $paid_commission = ''; $tag = ''; $real_fee = true; // se admiten - BTC, LTC, DOGE, DASH, BSV, BCH, ZEC, ETH $priority = "high"; // low - lentamente, medium - medio, high - rápidamente $paykassa = new PayKassaAPI( $paykassa_api_id, // el identificador de api $paykassa_api_password, // la contraseña api $test ); $system_id = [ "perfectmoney" => 2, // monedas admitidas USD "berty" => 7, // monedas admitidas RUB, USD "bitcoin" => 11, // monedas admitidas BTC "ethereum" => 12, // monedas admitidas ETH "litecoin" => 14, // monedas admitidas LTC "dogecoin" => 15, // monedas admitidas DOGE "dash" => 16, // monedas admitidas DASH "bitcoincash" => 18, // monedas admitidas BCH "zcash" => 19, // monedas admitidas ZEC "ripple" => 22, // monedas admitidas XRP "tron" => 27, // monedas admitidas TRX "stellar" => 28, // monedas admitidas XLM "binancecoin" => 29, // monedas admitidas BNB "tron_trc20" => 30, // monedas admitidas USDT "binancesmartchain_bep20" => 31, // monedas admitidas USDT, BUSD, USDC, ADA, EOS, BTC, ETH, DOGE "ethereum_erc20" => 32, // monedas admitidas USDT ]; $res = $paykassa->api_payment( $paykassa_merchant_id, // obligatorio, id durante la noche con el que desea hacer el pago $system_id[$system], // obligatorio, id método de pago $wallet, // obligatorio, el número de la bolsa en la que enviamos el dinero (float)$amount, // obligatorio, el importe del pago, ¿cuánto enviar $currency, // obligatorio, la moneda de pago $comment, // obligatorio, el comentario de pago, puede pasar en blanco $paid_commission, // es un parámetro opcional, que paga una comisión por la transferencia, shop o el client $tag, // el parámetro opcional, la etiqueta para el pago, puede pasar en blanco $real_fee, // parámetro obsoleto, siempre es true $priority // el parámetro opcional(por defecto medium), se utiliza para establecer el // la prioridad de inclusión en el bloque junto con $real_fee === true ); if ($res['error']) { // $res['error'] - true si el error echo $res['message']; // $res['message'] - el texto del mensaje de error //acciones en caso de error } else { //acciones en caso de éxito $shop_id = $res['data']['shop_id']; // id durante la noche, con la que realizó el pago, ejemplo 122 $transaction = $res['data']['transaction']; // el número de transacciones de pago, ejemplo 130236 $txid = $res['data']['txid']; // txid 70d6dc6841782c6efd8deac4b44d9cc3338fda7af38043dd47d7cbad7e84d5dd , puede estar vacío, // en este caso, la información de la transacción se puede obtener utilizando un enlace universal del campo explorer_transaction_link, ver más abajo $amount = $res['data']['amount']; // la suma de los pagos, cuánto списалось con un balance durante la noche, 0.42 $amount_pay = $res['data']['amount_pay']; // la suma de los pagos, tanto ha llegado el usuario, ejemplo: 0.41 $system = $res['data']['system']; // el sistema de pagos, donde se ha hecho el pago, ejemplo: Bitcoin $currency = $res['data']['currency']; // la moneda de pago, ejemplo: BTC $number = $res['data']['number']; // número de direcciones de donde eran enviados los fondos $comission_percent = $res['data']['shop_comission_percent'];// comisión de transferencia, en porcentaje, ejemplo: 1.5 $comission_amount = $res['data']['shop_comission_amount']; // la comisión por la transferencia de la suma, ejemplo: 1.00 $paid_commission = $res['data']['paid_commission']; // quién pagaba la comisión, ejemplo: shop $explorer_address_link = $res["data"]["explorer_address_link"]; // Enlace para ver la información de la dirección $explorer_transaction_link = $res["data"]["explorer_transaction_link"]; // Enlace para ver la información de la transacción } ?> <!-- /.El pago de -->