Paypal plugin problem in real mode

startpoint

Active Member
Hi,

I have a paypal plugin with ipn php file, who have a php code in function payment_status_Completed.
Everything work well in test mode, but in real mode code from this function not work. I receive letters that payment is made.

I have a latest github version nad latest Joomla.
Can you help me where is the problem?
 
Last edited:
That's not something we can do on a subscription basis. PayPal IPN issues can be tough to resolve, and require a lot of hands on work. We'd have to do that on an hourly rate.

Is there anything in your fabrik_log file? The plugin should record events when the IPN response happens.

-- hugh
 
Hi,
this is from log table:

message_type
form.paypal.ipn.Completed

//////////////

//////////////
cmd=_notify-validate&mc_gross=0.01&protection_eligibility=Ineligible&address_status=unconfirmed&payer_id=ARNHTUQJ25NVJ&tax=0.00&address_street=Rajko+Bluskov+5&payment_date=04%3A44%3A23+Oct+20%2C+2015+PDT&payment_status=Completed&charset=windows-1252&address_zip=&first_name=Borislav&mc_fee=0.01&address_country_code=BG&address_name=Borislav+Todorov&notify_version=3.8&custom=5%3A222%3A3495&payer_status=unverified&business=xxxxxxxx%40gmail.com&address_country=Bulgaria&address_city=Varna&quantity=1&verify_sign=AP3xmreeIQq25V7ewI9Hcw145lWxAA9LLeLtBk17o-A2niCEbYBeBxvJ&payer_email=contact%40xxxxxxxx.tk&txn_id=3FB40499VG4311013&payment_type=instant&last_name=Todorov&address_state=Varna&receiver_email=xxxxxxxx%40gmail.com&payment_fee=0.01&receiver_id=EB6UZXJ4YKBL4&txn_type=web_accept&item_name=Subs&mc_currency=USD&item_number=&residence_country=BG&handling_amount=0.00&transaction_subject=5%3A222%3A3495&payment_gross=0.01&shipping=0.00&ipn_track_id=7315c41290da
//////////////

SELECT *
FROM #__fabrik_connections
WHERE `default` = '1'
IPN custom function =
IPN custom transaction function =

I think there is a bug with paypal plugin in real mode.

I tested other hosting, with new Joomla 3.4.4 instalation, but again the same result.
In test mode I have result in database from IPN, but in real mode no.
 
Last edited:
From just reading the code, I think the only way you could get a completion log entry, but with blank IPN custom functions, is if your IPN handler class file is not loading. Which is one of the things we should now log.

-- hugh
 
I updated. This is a result:
//////////////

//////////////
cmd=_notify-validate&mc_gross=0.01&protection_eligibility=Ineligible&address_status=unconfirmed&payer_id=ARNHTUQJ25NVJ&tax=0.00&address_street=Rajko+Bluskov+5&payment_date=12%3A02%3A22+Oct+20%2C+2015+PDT&payment_status=Completed&charset=windows-1252&address_zip=&first_name=Borislav&mc_fee=0.01&address_country_code=BG&address_name=Borislav+Todorov&notify_version=3.8&custom=5%3A223%3A3496&payer_status=unverified&business=xxxxxxxx%40gmail.com&address_country=Bulgaria&address_city=Varna&quantity=1&verify_sign=AJR3Bx-7XhRbSIm-CbYeHdkzyNGoAlerGEj37v.xQ-ZEfhvQvYVR3crN&payer_email=contact%40xxxxxxxx.tk&txn_id=1J254676R2809784J&payment_type=instant&last_name=Todorov&address_state=Varna&receiver_email=xxxxxxxx%40gmail.com&payment_fee=0.01&receiver_id=EB6UZXJ4YKBL4&txn_type=web_accept&item_name=Subs&mc_currency=USD&item_number=&residence_country=BG&handling_amount=0.00&transaction_subject=5%3A223%3A3496&payment_gross=0.01&shipping=0.00&ipn_track_id=9c910656dd472
//////////////

SELECT *
FROM #__fabrik_connections
WHERE `default` = '1'
IPN custom function =
IPN custom transaction function =


I think as if there is no difference.
 
Last edited:
This is a log in test mode:

mc_gross = 0.01

protection_eligibility = Ineligible

address_status = unconfirmed

payer_id = 9TNPBRM42H3KS

tax = 0.00

address_street = Rue du Cornet 6

payment_date = 12:24:09 Oct 20, 2015 PDT

payment_status = Completed

charset = windows-1252

address_zip = 4800

first_name = Ivan

mc_fee = 0.01

address_country_code = BE

address_name = Ivan Ivanov

notify_version = 3.8

custom = 5:225:3498

payer_status = verified

business = contact@xxxxxx.tk

address_country = Belgium

address_city = VERVIERS

quantity = 1

verify_sign = AiKZhEEPLJjSIccz.2M.tbyW5YFwAMvvYrc6T3.5ow6x.FSZgKoyQquH

payer_email = ivan_777xxxxxxxxxx@abv.bg

txn_id = 0T108332HT171901K

payment_type = instant

last_name = Ivanov

address_state =

receiver_email = contact@xxxxxx.tk

payment_fee = 0.01

receiver_id = 6QAXLN2C3D46U

txn_type = web_accept

item_name = Subs

mc_currency = USD

item_number =

residence_country = BE

test_ipn = 1

handling_amount = 0.00

transaction_subject = 5:225:3498

payment_gross = 0.01

shipping = 0.00

ipn_track_id = cfb410e81e4cb


//////////////
VERIFIED
//////////////
cmd=_notify-validate&mc_gross=0.01&protection_eligibility=Ineligible&address_status=unconfirmed&payer_id=9TNPBRM42H3KS&tax=0.00&address_street=Rue+du+Cornet+6&payment_date=12%3A24%3A09+Oct+20%2C+2015+PDT&payment_status=Completed&charset=windows-1252&address_zip=4800&first_name=Ivan&mc_fee=0.01&address_country_code=BE&address_name=Ivan+Ivanov&notify_version=3.8&custom=5%3A225%3A3498&payer_status=verified&business=contact%xxxxxx.tk&address_country=Belgium&address_city=VERVIERS&quantity=1&verify_sign=AiKZhEEPLJjSIccz.2M.tbyW5YFwAMvvYrc6T3.5ow6x.FSZgKoyQquH&payer_email=ivan_777xxxxxx%40abv.bg&txn_id=0T108332HT171901K&payment_type=instant&last_name=Ivanov&address_state=&receiver_email=contact%40xxxxxx.tk&payment_fee=0.01&receiver_id=6QAXLN2C3D46U&txn_type=web_accept&item_name=Subs&mc_currency=USD&item_number=&residence_country=BE&test_ipn=1&handling_amount=0.00&transaction_subject=5%3A225%3A3498&payment_gross=0.01&shipping=0.00&ipn_track_id=cfb410e81e4cb
//////////////

UPDATE ff103_payments
SET `adsID` = '3498',`ipn_txn_id` = '0T108332HT171901K',`ipn_payment` = '0.01',`ipn_status` = 'Completed'
WHERE ff103_payments.id = '225'
IPN custom function = payment_status_Completed
IPN custom transaction function = txn_type_web_accept
 
I've added another log entry, which I think you will now see, and you won't get a Completed log.

What is happening is that for some reason, you aren't getting a valid response from PayPal, when you reply to the IPN callback. What is supposed to happen is, PayPal calls your server, with the query string given in that status message. Our plugin then opens a connection back to paypal, and simply sends it back that list of query string args. PayPal then does some sanity checking, makes sure your IP matches who it sent the request to and that you correctly echoed back all the data it sent you ... then it sends back either VERIFIED or INVALID.

But the problem seems to be that we aren't getting either VERIFIED or INVALID, we're getting nothing.

Anyway ... confirm that with my latest log change, you get a form.paypal.ipnfailure.unknown log entry instead of a form.paypal.ipn.Completed, and that you don't get a "payment succeeded" email.

I still have no idea why you aren't getting the VERIFIED or INVALID back from them, though ...

-- hugh
 
I tried, but again no IPN response.

I tried that:
PHP:
        $header = "POST /cgi-bin/webscr HTTP/1.1\r\n";
        $header .= "Host: www.paypal.com:443\r\n";
        $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
        $header .= "Content-Length: " . JString::strlen($req) . "\r\n\r\n";
and that:
PHP:
        $header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
        $header .= "Host: www.paypal.com:443\r\n";
        $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
        $header .= "Content-Length: " . JString::strlen($req) . "\r\n\r\n";
        $header .= "Connection: close\r\n";
No IPN response in test mode too.
 
Sorry, but no luck.
I entered in my sites new site details for login.

I think that is a hosting issue.
I tested on another host in german and I have ipn response.
On another bulgarian hosting no ipn response too.

Please help to solve the problem.
 
Nothing I can really do. It worked for me, even before I made the changes to make it HTTP/1.1 and add the "Connection: close" header, and it still works. I can't debug your server, as the only way to debug this stuff is using xdebug, so I can actually step through the code.

Who do you host with? Is it a shared server, or a VM?

I've added some extra logging, so the entire response coming from PayPal after we echo back the post data should now get logged, which may tell us something. Try again ...

-- hugh
 
in test mode:
mc_gross = 0.01

protection_eligibility = Ineligible

address_status = unconfirmed

payer_id = 9TNPBRM42H3KS

tax = 0.00

address_street = Rue du Cornet 6

payment_date = 10:01:24 Oct 21, 2015 PDT

payment_status = Completed

charset = windows-1252

address_zip = 4800

first_name = Ivan

mc_fee = 0.01

address_country_code = BE

address_name = Ivan Ivanov

notify_version = 3.8

custom = 11:8:

payer_status = verified

business = contact@xxxxxxxx.tk

address_country = Belgium

address_city = VERVIERS

quantity = 1

verify_sign = AB8uKJ-cgis5XVZJfu8yXdO6dhrpAU6xzMqttq3cmk9rH10P43fxnXmO

payer_email = xxxxxxxx@abv.bg

txn_id = 3HG38278HR066370A

payment_type = instant

last_name = Ivanov

address_state =

receiver_email = contact@xxxxxxxx.tk

payment_fee = 0.01

receiver_id = 6QAXLN2C3D46U

txn_type = web_accept

item_name = aaaa

mc_currency = USD

item_number =

residence_country = BE

test_ipn = 1

handling_amount = 0.00

transaction_subject = 11:8:

payment_gross = 0.01

shipping = 0.00

ipn_track_id = bda734d9516f6


//////////////


//////////////
cmd=_notify-validate&mc_gross=0.01&protection_eligibility=Ineligible&address_status=unconfirmed&payer_id=9TNPBRM42H3KS&tax=0.00&address_street=Rue+du+Cornet+6&payment_date=10%3A01%3A24+Oct+21%2C+2015+PDT&payment_status=Completed&charset=windows-1252&address_zip=4800&first_name=Ivan&mc_fee=0.01&address_country_code=BE&address_name=Ivan+Ivanov&notify_version=3.8&custom=11%3A8%3A&payer_status=verified&business=contact%40xxxxxxxx.tk&address_country=Belgium&address_city=VERVIERS&quantity=1&verify_sign=AB8uKJ-cgis5XVZJfu8yXdO6dhrpAU6xzMqttq3cmk9rH10P43fxnXmO&payer_email=xxxxxxxx%40abv.bg&txn_id=3HG38278HR066370A&payment_type=instant&last_name=Ivanov&address_state=&receiver_email=contact%40xxxxxxxx.tk&payment_fee=0.01&receiver_id=6QAXLN2C3D46U&txn_type=web_accept&item_name=aaaa&mc_currency=USD&item_number=&residence_country=BE&test_ipn=1&handling_amount=0.00&transaction_subject=11%3A8%3A&payment_gross=0.01&shipping=0.00&ipn_track_id=bda734d9516f6
//////////////

SELECT *
FROM #__fabrik_connections
WHERE `default` = '1'
IPN custom function =
IPN custom transaction function =

in real mode:


//////////////

//////////////
cmd=_notify-validate&mc_gross=0.01&protection_eligibility=Ineligible&address_status=unconfirmed&payer_id=ARNHTUQJ25NVJ&tax=0.00&address_street=Rajko+Bluskov+5&payment_date=10%3A04%3A57+Oct+21%2C+2015+PDT&payment_status=Completed&charset=windows-1252&address_zip=&first_name=Borislav&mc_fee=0.01&address_country_code=BG&address_name=Borislav+Todorov&notify_version=3.8&custom=11%3A8%3A&payer_status=unverified&business=xxxxxxxx.com%40gmail.com&address_country=Bulgaria&address_city=Varna&quantity=1&verify_sign=AFQ5ThYRjqOHIF-EQB-UoT-fqqljAjmKu.3iS.I-iQ2rXtl6P0LraB5P&payer_email=contact%40xxxxxxxx.tk&txn_id=8KF59885EG462464K&payment_type=instant&last_name=Todorov&address_state=Varna&receiver_email=xxxxxxxx.com%40gmail.com&payment_fee=0.01&receiver_id=EB6UZXJ4YKBL4&txn_type=web_accept&item_name=aaaa&mc_currency=USD&item_number=&residence_country=BG&handling_amount=0.00&transaction_subject=11%3A8%3A&payment_gross=0.01&shipping=0.00&ipn_track_id=ab8eda3b9ee5
//////////////

SELECT *
FROM #__fabrik_connections
WHERE `default` = '1'
IPN custom function =
IPN custom transaction function =

I use share hosting account.
Something else to provide?
 
We are in need of some funding.
More details.

Thank you.
Back
Top