Paypal Sandbox Test Tool IPN Simulator in Localhost

comment utiliser le simulateur de Notification de paiement instantané dans une machine locale? Que fournira L'URL du gestionnaire IPN? Je n'ai pas accès à notre routeur.

Merci

32
demandé sur JR Galia 2012-07-13 15:29:50

6 réponses

vous ne pouvez pas tester IPN sur votre hébergeur local, car IPN est tout au sujet du serveur de PayPal initialisant un POST côté serveur à une URL que vous définissez.

En conséquence, votre script IPN être accessible par le monde extérieur (ou vous pouvez utiliser un tunnel tel que ngrok.moi / localtunnel.moi).

18
répondu Robert 2015-04-23 06:56:13

vous pouvez tester sur localhost en utilisant ngrok.

il suffit d'exécuter ngrok localement puis de coller l'url de test que ngrok vous donne (quelque chose comme http://1bc7d09d.ngrok.com/)

il fournit un tunnel à votre hôte local.

42
répondu atahan 2014-06-07 11:07:57

le simulateur IPN de Paypal ne fonctionnera pas avec localhost. Toutefois, vous pouvez simuler le simulateur :-). Pour ce faire, vous devez installer un plugin de navigateur/l'extension affiche pour firefox ou Avancé Reste Client pour google chrome.

ouvrez l'application et mettez votre url sur laquelle vous êtes à l'écoute pour les réponses IPN:

http://localhost/ipn

mettez les données suivantes comme vos données de poste et soumettez la demande:

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&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%2C+any+street

UPDATE: I juste commencé à utiliser une autre option qui est plus facile, https://localtunnel.me. Pour installer et exécuter le module d'effectuer les opérations suivantes. Il affichera votre URL publique. Toutes les requêtes à cette URL publique seront transmises à votre hébergeur Local.

npm install -g localtunnel
lt --port 80
31
répondu Matt 2015-01-15 05:16:58

Vous pouvez simuler L'IPN post de PayPal en exécutant le script ci-dessous que j'ai fait sur votre localhost (vous aurez besoin de curl installé). Tant que votre auditeur est pointé vers le bac à sable, il devrait valider. Changez votre auditeur en paypal live et il ne devrait pas valider.

<?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&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%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] => seller@paypalsandbox.com
  [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] => seller@paypalsandbox.com
  [verify_sign] => AFcWxV21C7fd0v3bYYYRCpSSRl31AgAAjEU7A5rthY2aP4j1jOIrjuGx
  [address_country] => United States
  [payment_status] => Completed
  [address_status] => confirmed
  [business] => seller@paypalsandbox.com
  [payer_email] => buyer@paypalsandbox.com
  [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);
?>
8
répondu user6972 2013-08-27 22:25:18

je fais des tests sur localhost. Vous pouvez utiliser un service comme dyn.com ou noip.com ou pointez un sous-domaine à votre adresse locale si elle est statique.

4
répondu Brian Keith 2013-06-13 04:15:55
/ngrok http -host-header=yourwebsite.com 80

tunnel à localhost avec le droit de l'en-tête d'hôte

4
répondu garyconstable 2016-04-08 06:00:58