web-dev-qa-db-fra.com

Outil de test Paybox Sandbox IPN Simulator dans Localhost

Comment utiliser le simulateur de notification de paiement instantané sur une machine locale? Que sera fourni dans l'URL du gestionnaire IPN? Je n'ai pas accès à notre routeur.

Merci

35
JR Galia

Vous ne pouvez pas tester IPN sur votre hôte local, car IPN concerne le serveur de Paypal initiant un côté serveur POST à une URL que vous définissez.
Par conséquent, votre script IPN doit être accessible par le monde extérieur (ou vous pouvez utiliser un tunnel tel que ngrok.me/localtunnel.me).

22
Robert

Vous pouvez tester sur localhost en utilisant ngrok .

Exécutez simplement ngrok localement puis collez l'url de test que ngrok vous donne (quelque chose comme http://1bc7d09d.ngrok.com/ )

Il fournit un tunnel à votre hôte local.

47
atahan

Le simulateur IPN de Paypal ne fonctionnera pas avec localhost. Cependant, vous pouvez simuler le simulateur :-). Pour ce faire, vous devez installer un plugin/extension de navigateur tel que poster pour firefox ou Advanced Rest Client pour google chrome.

Ouvrez l'application et insérez l'URL que vous écoutez pour les réponses IPN:

http://localhost/ipn

Mettez ce qui suit comme vos données POST 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

[~ # ~] mise à jour [~ # ~] : Je viens de commencer à utiliser une autre option qui est plus facile, https: // localtunnel. moi . Pour installer et exécuter le module, procédez comme suit. Il affichera votre URL publique. Toutes les demandes adressées à cette URL publique seront transmises à votre hôte local.

npm install -g localtunnel
lt --port 80
32
Matt

Vous pouvez simuler la publication IPN de Paypal en exécutant le script ci-dessous que j'ai créé sur votre hôte local (vous aurez besoin de curl installé). Tant que votre auditeur pointe vers le bac à sable, il doit valider. Remplacez votre auditeur par Paypal en direct et il ne devrait pas être validé.

<?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] => [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);
?>
8
user6972

Je teste sur localhost. Vous pouvez utiliser un service comme dyn.com ou noip.com ou pointer un sous-domaine vers votre adresse locale si elle est statique.

4
Brian Keith
/ngrok http -Host-header=yourwebsite.com 80

tunnelera vers localhost avec l'en-tête d'hôte droit

4
garyconstable