Integrace PayPal brány – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Integrace PayPal brány – PHP – Fórum – Programujte.comIntegrace PayPal brány – PHP – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Forest0
Stálý člen
30. 9. 2013   #1
-
0
-

Zdravím Vás :) Prosím Vás, nemáte někdo zkušenosti s integrací PayPal brány na web? Podařilo se mi dát na web tlačítko, které mi správně vygeneruje potřebné údaje, přihlásím se a dám Pay Now. Platba v pořádku přijde. Problém je, že mě to po zpracování nepřesměruje zpět na web (a to i když mám zapnutý a nastavený IPN), tudíž nemůžu dál pracovat s daty a zapsat je do databáze. Uvítám každou užitečnou radu. Děkuji předem.

Nahlásit jako SPAM
IP: 92.62.230.–
KIIV
~ Moderátor
+43
God of flame
30. 9. 2013   #2
-
0
-

a predavas ten odkaz, kam te to ma presmerovat tomu paypalu? Takhle nejak fungovaly veci jako vodafone mobilni penezenka a tak... mozna je to u paypalu stejny

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Forest0
Stálý člen
30. 9. 2013   #3
-
0
-
Nahlásit jako SPAM
IP: 92.62.230.–
KIIV
~ Moderátor
+43
God of flame
30. 9. 2013   #4
-
0
-

no podle popisu IPN nema nic spolecneho s presmerovanim.. je to jen notifikacni kanal o transakcich u tveho uctu... kterej musis samozrejme taky vhodne zpracovat a odpovedet tomu paypal serveru

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Forest0
Stálý člen
30. 9. 2013   #5
-
0
-

#4 KIIV
A co bych měl teda udělat? Jsem zoufalý. Už to řeším celý den a přišel jsem i o několik dolarů v rámci testování.

Nahlásit jako SPAM
IP: 92.62.230.–
KIIV
~ Moderátor
+43
God of flame
30. 9. 2013   #6
-
0
-

#5 Forest
tak tvrdi tam ze kdyz ti to na tu stranku prijde tak mas overit odeslanim na nejake dalsi rozhrani a tam ti to pak vrati VERIFIED pokud to bylo uspesne... bude muset odpovedet nekdo kdo s tim opravdu delal ... nemam chut studovat dokumentaci dopodrobna :D

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Forest0
Stálý člen
30. 9. 2013   #7
-
0
-

#6 KIIV
V pořádku. I tak díky :)

Nahlásit jako SPAM
IP: 92.62.230.–
Forest0
Stálý člen
30. 9. 2013   #8
-
0
-

KIV, pošleš mi prosím tu dokumentaci?

Nahlásit jako SPAM
IP: 92.62.230.–
KIIV
~ Moderátor
+43
God of flame
30. 9. 2013   #9
-
0
-
Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Forest0
Stálý člen
30. 9. 2013   #10
-
0
-

#9 KIIV
Díky moc.

Nahlásit jako SPAM
IP: 92.62.230.–
Forest0
Stálý člen
30. 9. 2013   #11
-
0
-

Hmmm, nejsem z toho vůbec moudrej a moje nervy už to taky nedávaj ...

Nahlásit jako SPAM
IP: 92.62.230.–
RePRO0
Super člen
3. 10. 2013   #12
-
0
-

Zdravím,

proč utrácíš dolary? Dá se tam použít ten testovací sandbox account, který nevezme nic.

Funguje to tak všude, klient pošle požadavek a ty dostaneš od paypal odpověď.

Jo a Tobě to vlastně nevrací zpět, narvi tam tento kus kódu ještě (nestačí jen tlačítko):

<input type='hidden' name='return' value='http://mysite.com/user_credits/purchase_credits'>
<input type='hidden' name='rm' value='1'>

A nebo prostě v tom nastavení musí být... udělej tyto kroky (je to anglicky):


1. Log in and click the Profile subtab under My Account.

2. Click the Website Payment Preferences link under Selling Preferences.

3. Click the On radio button to enable Auto Return.

4. Enter the Return URL. Note: You must meet the Return URL requirements in order to set up Auto Return.

Takže tak, snad nemusím překládat.
 

Nahlásit jako SPAM
IP: 95.82.185.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
Forest0
Stálý člen
3. 10. 2013   #13
-
0
-

#12 RePRO
Tak přesměrování už funguje, díky :) Ale nechce to zpracovat proměnné ...

Notice: Undefined index: item_name

Notice: Undefined index: item_number

Notice: Undefined index: payment_status

Notice: Undefined index: mc_gross

Notice: Undefined index: mc_currency

Notice: Undefined index: receiver_email

Notice: Undefined index: payer_email

Podle chyb usuzuji, že v proměnných nic není. Ale proč?

Nahlásit jako SPAM
IP: 92.62.230.–
KIIV
~ Moderátor
+43
God of flame
3. 10. 2013   #14
-
0
-

tak pouzij kouzelny vypis   <pre><?php print_r($_POST); ?></pre>   (nebo $_GET pokud to chodi tak...), at vis, co tam chodi

Nahlásit jako SPAM
IP: 62.216.147.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Forest0
Stálý člen
3. 10. 2013   #15
-
0
-

#14 KIIV
Mám to teď takto:

<?php
$item_name = $_POST["item_name"];
$item_number = $_POST["item_number"];
$payment_status = $_POST["payment_status"];
$payment_amount = $_POST["mc_gross"]; 
$payment_currency = $_POST["mc_currency"]; 
$receiver_email = $_POST["receiver_email"];
$payer_email = $_POST["payer_email"];

echo "<h1>Summary order</h1>";
echo "Item name: ".$item_name."<br />";
echo "Item number: ".$item_number."<br />";
echo "Payment status: ".$payment_status."<br />";
echo "Payment amount: ".$payment_amount."<br />";
echo "Payment currency: ".$payment_currency."<br />";
echo "Receiver: ".$receiver_email."<br />";
echo "Payer: ".$payer_email."";
?>
Nahlásit jako SPAM
IP: 92.62.230.–
KIIV
~ Moderátor
+43
God of flame
3. 10. 2013   #16
-
0
-

no a tvrdi ti to, ze tam ani jedno z nich neni (v $_POST) proto je dobry vypsat si i ten celej $_POST a $_GET jestli to jen nedostavas jinde nebo jinak nez cekas

Nahlásit jako SPAM
IP: 62.216.147.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Řešení
RePRO0
Super člen
3. 10. 2013   #17
-
+1
-
Zajímavé
Vyřešeno Nejlepší odpověď

Přesně, jak píše KIIV.

Zkusíme:

function nice_printr($data) { 
	echo "<pre>"; 
	print_r($data); 
	echo "</pre>"; 
}

No a pak zavoláme:

nice_printr($_POST);
nice_printr($_GET);
Nahlásit jako SPAM
IP: 78.156.137.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
Forest0
Stálý člen
3. 10. 2013   #18
-
0
-
Nahlásit jako SPAM
IP: 92.62.230.–
KIIV
~ Moderátor
+43
God of flame
3. 10. 2013   #19
-
0
-

tak ti to evidentne nechodi v postu ale getu a trosku zkraceny

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Forest0
Stálý člen
3. 10. 2013   #20
-
0
-

#19 KIIV
Takže jestli chápu dobře ten výstup a tebe, tak správná proměnná např. pro částku je:

$_GET["amt"]

? :-)

Nahlásit jako SPAM
IP: 92.62.230.–
KIIV
~ Moderátor
+43
God of flame
3. 10. 2013   #21
-
0
-

#20 Forest
pokud si ty vypisy neprohodil tak ano a 'st' je status a tak... kazdopadne bys urcite mel overovat aspon ze se to vratilo ze spravne adresy a idealne to presmerovat nekam dal, aby to nebylo tolik videt co se ceka

(pripadne to overit jeste tema triggerama pres to druhe rozhrani - ze ti to prijde zase jinde)

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Forest0
Stálý člen
3. 10. 2013   #22
-
0
-

#21 KIIV
Nevím, jestli jsem tě dobře pochopil. Tu URL, kterou mám v autoreturn, tak jakmile se po platbě paypal vrací na tu URL, tak ona není původní, ale sama se zašifruje (předpokládám, že md5) ...

Nahlásit jako SPAM
IP: 92.62.230.–
RePRO0
Super člen
4. 10. 2013   #23
-
0
-

No vidíš to, přišla ti odpověď co se týče ID transakce (hash), status (tedy jestli na to měl dotyčný peníze, nebo co provedl za akci), částka, měna a id subjektu.

S tím se dá samozřejmě pracovat, a nemusíš ani nikam přesměrovávat jak píše KIIV. Prostě ten výstup zpracuješ (tedy zpracuješ výstupní url). Nikdo to URL neví, takže buď v pohodě -- protože to url je zašifrované... což je zabezpečovací proces.

Takže si uděláš pak switch v tom souboru něco jako:

if (isset($_GET)) {
	switch ($_GET['st']) {
		case "Completed": 
		// uložíme danému uživatelovi peníze na účet:
		$user->getUserById($id_user)->setVallet($_GET['amt']);
		break;
	}
}
Nahlásit jako SPAM
IP: 95.82.185.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
Forest0
Stálý člen
4. 10. 2013   #24
-
0
-

#23 RePRO
A když status nebude "Completed", tak ho "pošlu do háje" :D

Nahlásit jako SPAM
IP: 92.62.230.–
Forest0
Stálý člen
4. 10. 2013   #25
-
0
-

Takže bych mohl udělat něco jako:

<?php
if($_GET["st"] == "Completed")
{
//pošlu peníze
}else{
echo "Payment cannot be done!";
}
?>
Nahlásit jako SPAM
IP: 92.62.230.–
RePRO0
Super člen
4. 10. 2013   #26
-
0
-

Nezapomeň si někam ukládat historii transakcí. Tedy koncové stavy. A pak vidíš další stav peněženky a jaká akce se stala, to znamená:

ID_TRANSAKCE | AKCE | ID_USER | ODEBRANA_CASTKA | KONCOVY_STAV | DATUM
1 | DOBITI_PENEZENKY | 2 | 500 | 2000 | 4.10.2010
2 | DOBITI_PENEZENKY | 2 | 500 | 1500 | 4.10.2010

Jinak přes ten IF to taky můžeš udělat... :-)

Nahlásit jako SPAM
IP: 95.82.185.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
Forest0
Stálý člen
4. 10. 2013   #27
-
0
-

#26 RePRO
Tak historie transakcí by měla být přímo v PayPalu účtu příjemce, ne? Pokud teda dojdou peníze na PayPal v pořádku. V opačném případě je mi to "jedno" a napíšu, že platba nemohla být dokončena. Z 99% by neprošla jen kvůli nedostatku peněz plátce (můj úsudek)

Nahlásit jako SPAM
IP: 92.62.230.–
RePRO0
Super člen
4. 10. 2013   #28
-
0
-

No, já se spíš snažím naznačit, že pokud uděláme pouhé nabití peněženky, tedy něco ve smyslu:

$query = sprintf("UPDATE users SET penezenka = penezenka + $_GET['amt']
WHERE id_user = '%s'", mysql_real_escape_string($id_user));

Tak změníme sice hodnotu, ale zpětně nikdy nebudeme vědět za co.

Nahlásit jako SPAM
IP: 95.82.185.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
Forest0
Stálý člen
4. 10. 2013   #29
-
0
-

#28 RePRO
Jo, jasně, chápu. Díky moc :-)

Btw. Je složitý opačný proces této operace?

Nahlásit jako SPAM
IP: 92.62.230.–
RePRO0
Super člen
4. 10. 2013   #30
-
0
-

#29 Forest
Za málo. Opačný proces? Dovysvětli. :-)

Nahlásit jako SPAM
IP: 95.82.185.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
Forest0
Stálý člen
4. 10. 2013   #31
-
0
-

#30 RePRO
No, že teď je to vlastně o tom, že já zákazníkovi nachystám přihlašovací okno do PayPalu, on mi pošle dolary a já mu je přičtu do databáze. A opačným procesem jsem myslel to, že zákazník by si ty peníze vybral z databáze na PayPal. To znamená, jak udělat operaci bez logování. On by vybral částku, která by se mu odečetla z databáze a z mého PayPalu by mu ta částka došla na jeho PayPal účet.

Nahlásit jako SPAM
IP: 92.62.230.–
RePRO0
Super člen
4. 10. 2013   #32
-
0
-
Nahlásit jako SPAM
IP: 95.82.185.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
Forest0
Stálý člen
4. 10. 2013   #33
-
0
-

#32 RePRO
No je to složitější, ale snad se s tím poperu. Důležitější pro mě bylo to, co jsme tu řešili doteď a jsem happy, že už konečně fungují proměnné. Opravdu mě nenapadlo, že hodnoty z inputu hidden budou v GET namísto POST a ještě zkrácené tvary. Pravděpodobně bezpečnost. Každopádně patří Vám oběma (RePRO, KIV) velké díky a jsem Vaším dlužníkem :-))

Nahlásit jako SPAM
IP: 92.62.230.–
RePRO0
Super člen
4. 10. 2013   #34
-
0
-

To vůbec, jsme tu od toho, abysme pomáhali -- když víme. Kolega KIIV Ti ještě něco odborného k té druhé problematice napíše. Já kdyžtak budu reagovat později (někdy odpoledne),

Nahlásit jako SPAM
IP: 95.82.185.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
Forest0
Stálý člen
4. 10. 2013   #35
-
0
-

#34 RePRO
Moc jsem to nepobral ...

Nahlásit jako SPAM
IP: 92.62.230.–
Martin Kozibrátka0
Stálý člen
4. 10. 2013   #36
-
0
-

Až to budeš mít vyřešené, ,můžeš sem dát nějaký podrobnější popis toho, jak jsi to kompletně zprovoznil? Byl bych ti vděčný. D9ky

Nahlásit jako SPAM
IP: 88.83.169.–
Savana.cz - neomezený webhosting za pár kaček :)
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 16 hostů

Podobná vlákna

Platba z PayPal na PayPal — založil marioff

Paypal — založil wise

Integrace — založil Spectator

Derivace,integrace — založil janysek_

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý