Cómo usar el simulador de notificación de pago instantáneo en la máquina local? ¿Qué se proporcionará en la URL del controlador de IPN? No tengo acceso a nuestro enrutadorHerramienta de prueba Paypal Sandbox Simulador IPN en Localhost
Gracias
Cómo usar el simulador de notificación de pago instantáneo en la máquina local? ¿Qué se proporcionará en la URL del controlador de IPN? No tengo acceso a nuestro enrutadorHerramienta de prueba Paypal Sandbox Simulador IPN en Localhost
Gracias
No se puede probar IPN en su servidor local, como IPN se trata del servidor de PayPal iniciar un POST en el servidor a una dirección URL que defina.
Como resultado, su secuencia de comandos de IPN debe ser accesible desde el exterior (o puede usar un túnel como ngrok.me/localtunnel.me).
Pruebo en localhost. Puede usar un servicio como dyn.com o noip.com o señalar un subdominio a su dirección local si es estático.
Puede simular la publicación de IPN de PayPal ejecutando la secuencia de comandos a continuación que hice en su servidor local (necesitará curl instalado). Siempre que su oyente apunte a la caja de arena debe validar. Cambie su oyente a PayPal en vivo y no debe validar.
<?php
// SIMULATE PAYPAL IPN LOCALLY
//
// Sometimes you need to test on your local host and this can be difficult due
// to IP routing issues. Use this code on your local machine to simulate the
// same process that the sandbox IPN simulator does when posting to your URL.
//
// Run this code in command line or via the browser. It will post IPN data just
// like Paypal would. If the code you've written to process your IPN data
// posts back to the sandbox, it should come back as valid.
// Put the full url to test in $paypal_url, include file extensions if necessary
$paypal_url = 'http://localhost/paypal_ipn/process'; // IPN listener to test
//example posted data from paypal IPN
$test = 'residence_country=US&invoice=abc1234&address_city=San+Jose&first_name=John&payer_id=TESTBUYERID01&mc_fee=0.44&txn_id=421462822&receiver_email=seller%40paypalsandbox.com&custom=xyz123+CUSTOMHASH&payment_date=12%3A40%3A25+27+Aug+2013+PDT&address_country_code=US&address_zip=95131&item_name1=something&mc_handling=2.06&mc_handling1=1.67&tax=2.02&address_name=John+Smith&last_name=Smith&receiver_id=seller%40paypalsandbox.com&verify_sign=AFcWxV21C7fd0v3bYYYRCpSSRl31AgAAjEU7A5rthY2aP4j1jOIrjuGx&address_country=United+States&payment_status=Completed&address_status=confirmed&business=seller%40paypalsandbox.com&payer_email=buyer%40paypalsandbox.com¬ify_version=2.4&txn_type=cart&test_ipn=1&payer_status=unverified&mc_currency=USD&mc_gross=12.34&mc_shipping=3.02&mc_shipping1=1.02&item_number1=AK-1234&address_state=CA&mc_gross1=9.34&payment_type=instant&address_street=123%2C+any+street';
/*
* More detailed breakout of the raw data
_POST EXAMPLE ARRAY FROM PAYPAL:
Array
(
[residence_country] => US
[invoice] => abc1234
[address_city] => San Jose
[first_name] => John
[payer_id] => TESTBUYERID01
[mc_fee] => 0.44
[txn_id] => 421462822
[receiver_email] => [email protected]
[custom] => xyz123 CUSTOMHASH
[payment_date] => 12:40:25 27 Aug 2013 PDT
[address_country_code] => US
[address_zip] => 95131
[item_name1] => something
[mc_handling] => 2.06
[mc_handling1] => 1.67
[tax] => 2.02
[address_name] => John Smith
[last_name] => Smith
[receiver_id] => [email protected]
[verify_sign] => AFcWxV21C7fd0v3bYYYRCpSSRl31AgAAjEU7A5rthY2aP4j1jOIrjuGx
[address_country] => United States
[payment_status] => Completed
[address_status] => confirmed
[business] => [email protected]
[payer_email] => [email protected]
[notify_version] => 2.4
[txn_type] => cart
[test_ipn] => 1
[payer_status] => unverified
[mc_currency] => USD
[mc_gross] => 12.34
[mc_shipping] => 3.02
[mc_shipping1] => 1.02
[item_number1] => AK-1234
[address_state] => CA
[mc_gross1] => 9.34
[payment_type] => instant
[address_street] => 123, any street
)
*/
//#
// PayPal IPN processor in PHP
// fake paypal post to test scripts
//#
//----------------------------------------------------------
// Create FAKE post from PayPal.
//----------------------------------------------------------
$req = $test; // use test data
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $paypal_url);
curl_setopt($ch,CURLOPT_POST, substr_count($req,'&')+1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $req);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
?>
necesita cambiar txn_id para cada prueba para evitar duplicar el error de reutilización de la transacción. –
@khaled_webdev ¿evita realmente sandbox la duplicación de txnid? Eso no fue un problema cuando usé esto por última vez. Tu oyente puede verificar esto y rechazar. El sistema de PayPal en vivo también detectaría y rechazaría. – user6972
no es un espacio aislado, sino un registro generado por el paquete ordenado symfony2-paypal-ipn y mi oyente no funciona por segunda vez. Primera vez 'Sucess' y cuando vuelvo a intentarlo recibí un error. –
El simulador de IPN de Paypal no funciona con localhost. Sin embargo, puedes simular el simulador :-). Para hacer esto, necesita instalar un complemento/extensión de navegador como poster para firefox o Advanced Rest Client para google chrome.
abrir la aplicación y poner en su url que está escuchando en las respuestas de IPN:
http://localhost/ipn
poner lo siguiente como sus datos POST y presentar la solicitud:
residence_country=US&invoice=abc1234&address_city=San+Jose&first_name=John&payer_id=TESTBUYERID01&mc_fee=0.44&txn_id=421462822&receiver_email=seller%40paypalsandbox.com&custom=xyz123+CUSTOMHASH&payment_date=12%3A40%3A25+27+Aug+2013+PDT&address_country_code=US&address_zip=95131&item_name1=something&mc_handling=2.06&mc_handling1=1.67&tax=2.02&address_name=John+Smith&last_name=Smith&receiver_id=seller%40paypalsandbox.com&verify_sign=AFcWxV21C7fd0v3bYYYRCpSSRl31AgAAjEU7A5rthY2aP4j1jOIrjuGx&address_country=United+States&payment_status=Completed&address_status=confirmed&business=seller%40paypalsandbox.com&payer_email=buyer%40paypalsandbox.com¬ify_version=2.4&txn_type=cart&test_ipn=1&payer_status=unverified&mc_currency=USD&mc_gross=12.34&mc_shipping=3.02&mc_shipping1=1.02&item_number1=AK-1234&address_state=CA&mc_gross1=9.34&payment_type=instant&address_street=123%2C+any+street
ACTUALIZACIÓN: Acabo de empezar a usar otra opción que es más fácil, https://localtunnel.me. Para instalar y ejecutar el módulo, haga lo siguiente. Mostrará su URL pública. Todas las solicitudes a esa URL pública se reenviarán a su servidor local.
npm install -g localtunnel
lt --port 80
También uso [localtunnel] (http://localtunnel.me/) y me resulta más fácil que 'ngrok' ya que no tengo que registrarme. Un consejo, si su sitio se encuentra en un host diferente (no en locahost) use la opción '-l'. Ex. 'lt -p 80 -l local.dev' espero que ayude. – JohnnyQ
Puede probar en localhost usando ngrok.
sólo tiene que ejecutar localmente ngrok luego pegar la URL de prueba que le da ngrok (algo así como http://1bc7d09d.ngrok.com/)
Proporciona un túnel a su servidor local.
/ngrok http -host-header=yourwebsite.com 80
túnel voluntad de localhost por el jefe del anfitrión derecho
Muchas gracias por este fragmento de código muy simple. :) –
http://progrium.com/localtunnel/ –
buena adición. Sí, podrías usar localtunnel si estás usando Rails. Sin embargo, tenga en cuenta que PayPal recomienda el puerto 80/443 (HTTP/HTTPS). El 'validador de IPN' no funcionará en puertos que no sean HTTP (S). – Robert
También puede falsificar los datos IPN para probarlos en su host local. Ver mi script a continuación. Necesitará una conexión de red para que el oyente se ponga en contacto con sandbox y php con curl instalado. – user6972