open-pay / openpay-php

Openpay PHP bindings
Apache License 2.0
60 stars 29 forks source link

Nuevo parámetro IP Pública getInstance() #80

Open jorgearmandooc opened 2 months ago

jorgearmandooc commented 2 months ago

La documentación no es clara respecto a este nuevo parámetro en getInstance

Openpay::setPublicIp('127.0.0.1'); //Tu ip publica

$openpay = Openpay::getInstance('MERCHANT_ID', 'PRIVATE_KEY', 'COUNTRY_CODE', 'PUBLIC_IP');

Para quienes tenemos nuestros proyectos en GCP no tenemos forma de tener esa IP publica y aparte estática ya que GCP APPENGINE cambia la IP en algunas ocasiones.

Lo mismo sucede con VPS

Cual será el protocolo para implementar esta funcionalidad? Que sucede con nuestros servidores IPV6 ya que su regex no funciona tampoco en dichos casos.

caos30 commented 1 month ago

Y el COUNTRY_CODE? El código de país de "qué" o de "quien"? Del datacenter? Del cliente? en el documento NOTES.txt mencionan como ejemplo un country_code de cliente, pero no tiene mucho sentido.

En fin, como dijo el compañero @jorgearmandooc deberían documentar mejor su código. Es muy desesperante tener que abrir un issue para entender los parámetros 😓

IDavidCP commented 6 days ago

@jorgearmandooc @caos30 Pudieron resolverlo? No deja inicializar sin esos parámetros.

caos30 commented 6 days ago

Como ves @IDavidCP nunca respondieron. Yo estoy usando como 'COUNTRY_CODE' el valor 'MX' y como 'PUBLIC_IP' la IP pública del servidor de la web que está usando OpenPay. Pero creo que el valor MX es fijo sí o sí. De hecho mi servidor y su IP están en USA. Creo que MX es más en referencia a que vas a recibir pagos en pesos mexicanos. En fin, lo que digo es pura especulación...

IDavidCP commented 5 days ago

Están usando COUNTRY_CODE para definir la URL de la API:

public static function setEndpointUrl($country)
    {
        if ($country == 'MX') {
            if (self::getClassificationMerchant() != 'eglobal') {
                self::$apiEndpoint = 'https://api.openpay.mx/v1';
                self::$apiSandboxEndpoint = 'https://sandbox-api.openpay.mx/v1';
            } else {
                self::$apiEndpoint = 'https://api.ecommercebbva.com/v1';
                self::$apiSandboxEndpoint = 'https://sand-api.ecommercebbva.com/v1';
            }
        } elseif ($country == 'CO') {
            self::$apiEndpoint = 'https://api.openpay.co/v1';
            self::$apiSandboxEndpoint = 'https://sandbox-api.openpay.co/v1';
        } elseif ($country == 'PE') {
            self::$apiEndpoint = 'https://api.openpay.pe/v1';
            self::$apiSandboxEndpoint = 'https://sandbox-api.openpay.pe/v1';
        }
    }

Pero la IP pública sigue sin quedar claro para qué la usan. @caos30 Entonces no usas la IP de tu propio servidor?

caos30 commented 5 days ago

Entonces no usas la IP de tu propio servidor?

Sí, estoy usando la IP de MI servidor, no me expresé bien.