Prog.Hu

PAYPAL fizetési rendszer

Keresés
Hírlevél

PAYPAL fizetési rendszer - hogyan?

2013-09-05T03:28+02:00
Click2
Click2Prog.Hu
regisztrált tag
nyitotta: Click2, idő: 2008.12.04. 21:38, utolsó hozzászólás: 2010.10.21. 15:37, moderátor: netangel
  Értesítés változás esetén Felvétel kedvencekhez Küldés emailben
Sorrend:
Időzóna:
Oldalanként:
Oszd meg!
  • E-mail
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 tud..
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 előzmény
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
előzmény
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ó. előzmény
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. előzmény
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. előzmény
paypal_ipn-2002-11-22.tar.gz
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. előzmény
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!
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. előzmény
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? előzmény
https://www.paypal.com/us/cgi-bin/webscr űrlap ide küldendő. Amit lentebb írtam az a teszt rendszer..bocs. előzmény
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. előzmény
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. előzmény
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. előzmény
https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_Appx_websitestandard_htmlvariables#id085KN025030

Ez kell neked itt. Lentebb nézd meg arról beszéltem...van itt egy rakás cucc ami nem feltétlen kell.

https://www.sandbox.paypal.com/us/cgi-bin/webscr ide kell küldeni az űrlapot. előzmény
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ó. előzmény
https://www.paypal.com/cgi-bin/webscr?cmd=p/pdn/howto_checkout-outside

De ez szerintem inkabb uzemeltetesi kerdes.
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.
Oszd meg másokkal is!
  • E-mail