Új hozzászólás Aktív témák

  • The DJ

    addikt

    Egész napja szívok, de feladom... segítsetek légyszi, mert én már kifogytam az ötletekből.

    Van egy Wordpress alapú webshop, ami a WP e-commerce plugint használja, hogy relaxáló zenéket lehessen megvásárolni és fizetés után digitális formában letölteni. Minden működik és szuper, kivéve a PayPal IPN-t. Tehát végbemegy a vásárlás, kifizetik a kiválasztott terméket PayPal-al, majd pedig nem történik semmi. Minek kellene? PayPal-on belül aktiválva van az IPN, meg van adva neki a korrekt URL, a plugin beállításaiban szintén engedélyezve. Elvileg ezután vissza kellene jeleznie a webshopnak, hogy "hé, végbement a tranzakció, megérkezett a pénz, küldheted az e-mailt a letöltés adataival". De ez sose történik meg. Ergo manuálisan kell átállítani a megrendelés státuszát minden esetben, ez pedig nem opció. Életre kell kelteni az IPN-t.

    Megkérdeztem a dolgot a plugin fejlesztői fórumában, de olyan kihalt, hogy esélytelen. Sajnos elég gyér a fejlesztői támogatás és elég bugos is ez a plugin, mindenki csak panaszkodik rá. Valószínűleg itt is ez lesz a probléma. A PayPal oldalán elvileg minden oké. Sandbox accounttal tesztelek, az IPN logban nem mutat hibát és elvileg el is küldi az IPN-t az oldal felé (200-as válasz).

    Ezt írja IPN notification URL-nek a log: http://brainwaveentrainment.eu/?wpsc_action=gateway_notification&gateway=wpsc_merchant_paypal_standard

    Amit, ha megnyitok kézzel, akkor kapok egy szép kerek hibaüzenetet: "Fatal error: Cannot use object of type WP_Error as array in C:\xampp\htdocs\brainwaveentrainment.eu\wp-content\plugins\wp-e-commerce\wpsc-merchants\paypal-standard.merchant.php on line 400"

    Ebből gondolom, hogy itt lehet a kutya elásva és itt akad el az IPN. De csak találgatok. A 400. sorban ez található:

    if ( 'VERIFIED' == $response['body'] ) {

    A PHP tudásom 0 körül leledzik, de találtam egy ilyen megoldást a hibaüzenetre guglizva: [link]

    Ez alapján javítottam a sort, hogy így nézzen ki:

    if ( 'VERIFIED' == $response->body ) {

    A linket újra megnyitva eltűnik a hibaüzenet. Hurrá! Csak éppen semmi sem változik. Gondolom ezzel a kontárkodással nem oldottam meg a problémát. Nem értek hozzá. Hátha majd ti.

    Feltöltöttem az érintetlen PHP fájl tartalmát pastebin-re: [link] Légyszi nézzetek már rá és mondjatok valami használhatót, mert már nincs hajszálam, amit kitéphetnék. Valahogy életre kell kelteni ezt az IPN-t és nem is lehetetlen, mert másoknak működik/működött. Próba gyanánt áttettem az egész oldalt másik szerverre, hátha a tulaj xamp-os megoldása a gond, de ez se segített.

    :R

Új hozzászólás Aktív témák

Hirdetés