Prog.Hu
PAYPAL fizetési rendszer - hogyan?
2013-09-05T03:28+02:00
Click2
Click2Prog.Hu
regisztrált tag
Már lehet hogy nem aktuális, de jó ha tudod:

A feltételben csak a legelső ágba tud belépni:
$statusz=="Completed"
mert a többinél egy nemlétező változót haszálsz:
$payment_status

Plussz a http kérés ellenőrzése sem árt ;)

szép napot, üdv

Tebe
Mutasd a teljes hozzászólást!
Sziasztok!

Amennyiben fizetés sikeres akkor meg lehet adni a PayPal-nak egy oldalt ahova a felhasználót irányítsa. Legyen mondjuk ez a "thanks.php"

A kérdésem az lenne, hogy a "thanks.php" is megkapja a PayPal-tól ezeket az adatokat?

$_POST['payer_email']; $_POST['payment_status']; stb. stb.

Köszönöm előre is
Mutasd a teljes hozzászólást!
A paypal_ipn.php a következő is lehet :


<?
ob_start();

include("../dbconn.php");


header("Pragma: no-cache");
Header("Cache-control: private, no-store, no-cache, must-revalidate"); 
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

// paraméterek eltárolása változókban:
$termek = $_POST['item_name'];
$statusz = $_POST['payment_status'];
$osszeg = $_POST['mc_gross'];
$penznem = $_POST['mc_currency'];
$tr_azonosito = $_POST['txn_id'];
$rendeles = $_POST['invoice'];
$ceges_email = $_POST['business'];
$nev = $_POST['first_name'] . " " . $_POST['last_name'] ;
$email = $_POST['payer_email'];

// Ha sikeres:
if ($statusz=="Completed") {

  // levél küldése magunknak
  $uzenet = "";
  $uzenet = $uzenet . "név: $nev \n";
  $uzenet = $uzenet . "e-mail cím: $email \n\n";
  $uzenet = $uzenet . "rendelés azonosító: $rendeles \n";
  $uzenet = $uzenet . "vásárolt termék: $termek \n\n";
  $uzenet = $uzenet . "összeg: $osszeg $penznem \n\n";
  $uzenet = $uzenet . "tranzakció azonosító: $txn_id \n";
  $uzenet = $uzenet . "státusz: $statusz \n";

  //mail("ate@cimed.hu","Sikeres PayPal fizetés! $osszeg $penznem ($invoice)",$uzenet,"From: $email($nev)");
  mail($ceges_email,"Sikeres PayPal fizetés! $osszeg $penznem ($invoice)",$uzenet,"From: $email($nev)");

  // levél küldése a vevőnek
  $uzenet = "";
  $uzenet = $uzenet . "A PayPal rendszerében sikeres volt a fizetésed! \n\n";
  $uzenet = $uzenet . "rendelés azonosító: $rendeles \n";
  $uzenet = $uzenet . "vásárolt termék: $termek \n\n";
  $uzenet = $uzenet . "összeg: $osszeg $penznem \n\n";
  $uzenet = $uzenet . "tranzakció azonosító: $txn_id \n";

  //mail("ate@cimed.hu","Sikeres PayPal fizetés!",$uzenet,"From: ate@cimed.hu Szöveg Elek)");
  mail($email,"Sikeres PayPal fizetés!",$uzenet,"From: ate@cimed.hu(Szöveg Elek)");

}

// Ha még függőben van:
elseif ($payment_status=="Pending") {
 
  // levél küldése magunknak
  $uzenet = "";
  $uzenet = $uzenet . "név: $nev \n";
  $uzenet = $uzenet . "e-mail cím: $email \n\n";
  $uzenet = $uzenet . "rendelés azonosító: $rendeles \n";
  $uzenet = $uzenet . "vásárolt termék: $termek \n\n";
  $uzenet = $uzenet . "összeg: $osszeg $penznem \n\n";
  $uzenet = $uzenet . "tranzakció azonosító: $txn_id \n";
  $uzenet = $uzenet . "státusz: $statusz \n";

  mail("ate@cimed.hu","Függőben lévő PayPal fizetés... ($invoice)",$uzenet,"From: $email($nev)");
  //mail($ceges_email,"Függőben lévő PayPal fizetés... ($invoice)",$uzenet,"From: $email($nev)");

  // levél küldése a vevőnek
  $uzenet = "";
  $uzenet = $uzenet . "A PayPal rendszerében elindított fizetésed még függőben van... \n\n";
  $uzenet = $uzenet . "rendelés azonosító: $rendeles \n";
  $uzenet = $uzenet . "vásárolt termék: $termek \n\n";
  $uzenet = $uzenet . "összeg: $osszeg $penznem \n\n";
  $uzenet = $uzenet . "tranzakció azonosító: $txn_id \n";

  mail("ate@cimed.hu","Függőben lévő PayPal fizetés...",$uzenet,"From: ate@cimed.hu(Szöveg Elek)");
  //mail($email,"Függőben lévő PayPal fizetés...",$uzenet,"From: ate@cimed.hu(Szöveg Elek)");

}

// Ha sikertelen:
elseif ($payment_status=="Failed") {

  // levél küldése magunknak
  $uzenet = "";
  $uzenet = $uzenet . "név: $nev \n";
  $uzenet = $uzenet . "e-mail cím: $email \n\n";
  $uzenet = $uzenet . "rendelés azonosító: $rendeles \n";
  $uzenet = $uzenet . "vásárolt termék: $termek \n\n";
  $uzenet = $uzenet . "összeg: $osszeg $penznem \n\n";
  $uzenet = $uzenet . "tranzakció azonosító: $txn_id \n";
  $uzenet = $uzenet . "státusz: $statusz \n";

  mail("ate@cimed.hu","Sikertelen PayPal fizetés. ($invoice)",$uzenet,"From: $email($nev)");
  //mail($ceges_email,"Sikertelen PayPal fizetés. ($invoice)",$uzenet,"From: $email($nev)");

  // levél küldése a vevőnek
  $uzenet = "";
  $uzenet = $uzenet . "A PayPal rendszerében sikertelen volt a fizetésed. \n\n";
  $uzenet = $uzenet . "rendelés azonosító: $rendeles \n";
  $uzenet = $uzenet . "vásárolt termék: $termek \n\n";
  $uzenet = $uzenet . "összeg: $osszeg $penznem \n\n";
  $uzenet = $uzenet . "tranzakció azonosító: $txn_id \n";

  mail("ate@cimed.hu","Sikertelen PayPal fizetés.",$uzenet,"From: ate@cimed.hu(Szöveg Elek)");
  //mail($email,"Sikertelen PayPal fizetés.",$uzenet,"From: ate@cimed.hu(Szöveg Elek)");

}

mysql_close($kapcsolat);
ob_end_flush();

?>

A dbconn.php az adatbázis kapcsolódást tartalmazza csak.

A fenti változókat a Paypal adja(pl.: $_POST['item_name'];). Tehát csak akkor hívódik ez a file meg, ha a Paypal úgy ítéli, hogy sikeres volt a tranzakció.
Mutasd a teljes hozzászólást!
Az instant payment notofication-t keresem...de nem találom, lehet, hogy céges bankkarival lehet már csak ilyet csinálni. Ha találsz ilyet, hogy Instant Payment Notification, oda kell megadni a paypal_ipn.php elérési útját.

Megkutyulták, múltkor még volt...mindenesetre ha regelsz a developer.paypal.com oldalra, és belépsz, ott van ilyen, hogy test tools (bal oldalt) és Instant Payment Notification (IPN) simulator.

Ott megadod a paypal_ipn.php helyét és kész.

Áhh megvan.

https://www.paypal.com/hu/cgi-bin/webscr?cmd=_profile-ipn-notify

Jól eldugták a piszkok..no itt katt az Edit-re alul.

Egyébként az Auction Tools-nál találtam majd a View all tools, és itt a Instant Payment notification / get started.
Mutasd a teljes hozzászólást!
Köszönöm a segítséget!
Találtam egy példát a phpclasses-on, amit most csatolva felteszek.
Ebben nem tudnál segíteni? Nagyon fontos lenne!
Itt ebben végülis ahogy nézem a firebug-gal, jön vissza válasz, de én nem találkozom a paypal oldallal. Elvileg odaküldene -> bejelentkezés -> fizetés -> majd kapom a postokat.
Szerintem ez lenne a sorrend, de itt rögtön kapom a postokat.
Lehet én vok ehhez analfabéta Bocsi!
De kérlek valahogy segíts összehozni!
Köszi!
Üdv. Zoli.
Mutasd a teljes hozzászólást!
A Paypal rendszerében beállíthatsz egy paypal_ipn.php-t, így egy pár változót a paypal visszaküld a szervernek, de hát adatbázisodból kell ellenőrizni, hogy tényleg stimmelnek-e az összegek. Egyébként a szerver neked visszafelé is POST-okat küld.


A paypal_ipn.php a te szervereden van amit sikeres fizetés esetén a paypal hív meg..de csak akkor. Ebbe beleteszel egy tranzakció azonosítót is és tárolod, vagy bármilyen egyéb adatot.
Mutasd a teljes hozzászólást!
Még akadt kérdésem, pedig már mindent végigolvastam...

Addig már megy a dolog, hogy a PayPalon megjelenik az összeg és lehet fizetni.
Azt hogyan lehet megvalósítani, hogy a vásárlás után az én adatbázisomba egy bitet átbillentsen, hogy az adott megrendelést kifizette?
Előre is köszi!
Mutasd a teljes hozzászólást!
Csak tippem van vallalkozoi tapasztalatombol:
Ceges vagy vallalkozoi szamlad kell legyen, a penzt csak arra utalhatjak, neked bizonyos minimalis torvenyeknek megfelelo bizonylatot midnenkeppen ki kell allitanod, es aztan szepen bevallanod mint barmilyen bevetel eseten.
Mutasd a teljes hozzászólást!
Köszi mindenkinek a segítséget, a neten is találtam már előre megírt cuccot, úgyhogy azt már könnyen tudom módosítani a kedvem szerint.
Viszont lenne még 1 kérdésem, mégpedig hogy működik ennek az adózási, áfa befizetési dolga, tehát hogy legális is legyen? :)
Mert ugye ha sms-ben kapom a pénzt, azután kiállítom a szolgáltatónak a számlát, ami le lesz könyvelve stb, és úgy kapom meg a pénzt. Itt viszont egyszerűen átutalják a bankkártyámra.. Ilyenkor mi a teendő ha szabályosan szeretnék eljárni?
Mutasd a teljes hozzászólást!
https://www.paypal.com/us/cgi-bin/webscr űrlap ide küldendő. Amit lentebb írtam az a teszt rendszer..bocs.
Mutasd a teljes hozzászólást!
A Paypal rendszerében beállíthatsz egy paypal_ipn.php-t, így egy pár változót a paypal visszaküld a szervernek, de hát adatbázisodból kell ellenőrizni, hogy tényleg stimmelnek-e az összegek. Egyébként a szerver neked visszafelé is POST-okat küld.

Nem tudom még milyen variációk vannak. Szerintem biztonságos. De ha valaki az adatbázisodhoz hozzáfér, és ott át tudja írni az összegeket na az elég gáz amúgyis.

Át lehet pakolni kosárba persze, dehát a paypal felé akkoris ezek az adatok meg így mennek.

Jaigen..ha paypal azt mondja, hogy megkapta a pénzt, beállíthatsz a paypal rendszerében egy rendben.php vagy bármilyen file-t, így ezt mutogatja a usernek, ha a pénzzel minden ok.
Mutasd a teljes hozzászólást!
Pusztan elmeleti kerdes, de ha mar tarsalgo.

Ilyesmit nem lehet valahogy kivedeni ugy, hogy a vasarlo siman rendszeren beluli kosarban aszongya, hogy checkout, es a paypal szamara felparameterezett kerest te kuldod szerveroldalrol mittomen curl-lal, megkapod a valaszt, amit forwardolsz vissza a juzernek?

Budos eletben nem nezegettem paypal-t, ezt azert hozzateszem. :]

[Szerk.]
Es igen. Dog lusta vagyok elolvasni, amit belinkeltem.
Mutasd a teljes hozzászólást!
Aztán mikor a fizetés megtörtént, MINDÍG ellenőrizd, hogy valós összeget fizetett-e ki! Mert ha megtalálja a rejtett mezőket, és az értékeket átírja, előfordulhat, hogy azt mondja a webshopod, hogy ki lett fizetve, az összeg meg 1Ft.
Mutasd a teljes hozzászólást!
Szia! 50 pontért megmondom, "ingyen" nem.

Na azért picit segítek.

Egy űrlapot kell küldened a paypal felé, célszerű az input boxokat hiddenre állítani, ezen mezőknek vannak "speciális" nevei...mármint az inputboxoknak amit a paypal értelmezni tud.

pl.: cmd, redirect_cmd,tax,email...stb. mind fontos érték, és érdemes kitöltve küldeni a paypalnak.

Fontosabb nevek:
<input type="hidden" name="business" value="Saját céges paypal mail cím">

ez volt a business...

item_name = termék megnevezése

amount = összeg forintban (persze egy másik értékkel be kell állítani elötte hogy forintra konvertáljon)

email = vásárló email címe

invoice = tranzakció egyedi azonosítója

Szóval ez egy működő megoldás, lehet van jobb is, nem tudom. Megoldható, hogy ha nincs paypal regisztrációja, akkor tud fizetni domboonyomott kártyával is, de ott is az elv hasonló.
Mutasd a teljes hozzászólást!
Mutasd a teljes hozzászólást!
Sziasztok..

Jelenleg is van egy működőképes honlapom, amiben sms-ben lehet rendelni magának vmit az oldalra, mégpedig úgy, hogy elküldi az azonosítóját egy számra, és akkor annak odaadom amit kért.
Ezt szeretném kibővíteni paypal-es fizetési rendszerre is, és addig már el is jutottam, hogy regisztráltam a paypal-en, bussiness accountom van, aktiváltam a kártyámat, sőt, már a buy now gombot is létrehoztam (bár a kitöltése lehet hogy nem tökéletes), viszont nem tudom hogy hogyan tudom megadni neki, hogy melyik azonosítónak töltse fel amit rendelt?
Tehát belépnek nálam az oldalon, és rákattintanak a buy now gombra. Valahogy el kellene küldeni a paypal-nek az illető azonosítóját, és a fizetés sikeressége után pedig vissza kéne kapnom hogy sikeres volt a fizetés, valamint az azonosítót, hogy tudjam kinek kell feltölteni a pénzt.
Vagy a paypal-nek kell beírni, hogy mit töltsön be sikeres fizetés esetén?
Hogyan?

Légyszi, ha valakit tudja, vagy netán már csinált ilyet, az kérem írja meg.
Előre is köszi.
Mutasd a teljes hozzászólást!
Oszd meg másokkal is!
  • E-mail