Jump to content
Sign in to follow this  
devosc

[Contribution]Paypal IPN - Devosc

Recommended Posts

Yes. That is the one. Works great, my clients like it. It is from osCommerce, you know that this will be the paypal module in the next major release, so why not now?


John Oligario

 

Knowledge Base Contributions

Share this post


Link to post
Share on other sites
Mibble has already said this, but it is obviously worth saying in full "Forget about 2.9 - use the new contribution!? It's free standing, you can leave the other PayPal mods were they are, just deactivate them, and use the new one - without having to make any changes to the files!"

 

Vger

 

 

There's a problem with this contribution.... although it installs very fast... and it's great... it doesn't require an address to be chosen, nor can you verify the address where you're shipping your products.

 

If you don't mind losing anything... that's fine... just know this will show up on all your orders at paypal.

 

Seller Protection Policy:

Ineligible

 

Anyone working on a mod to verify addresses??

Edited by jonathn

Share this post


Link to post
Share on other sites
There's a problem with this contribution.... although it installs very fast... and it's great... it doesn't require an address to be chosen, nor can you verify the address where you're shipping your products.

 

If you don't mind losing anything... that's fine... just know this will show up on all your orders at paypal.

 

Seller Protection Policy:

Ineligible

 

That alone reders this module useless for those that sell anything of value.

 

Anyone working on a mod to verify addresses??

Edited by jonathn

Share this post


Link to post
Share on other sites

Hi, I was having a problem with 2.9 (the update order status problem) so I have now just installed the new 1.0 version from oscommerce but im still having the same problem. COuld someone post example config of what should be in each box when you eidt the config for this payment module. Also what needs to be done in the paypal account if it is a new paypal account?

Thanks,

Richard

Share this post


Link to post
Share on other sites

'popup_paypal.php' is the public catalog page for the popup info page shown (available) during checkout, it's name, e.g. 'popup_' is specifically chosen so as to be compatible for use with STS and not requiring any modifications of STS itself. It also serves up the css used on the catalog side, but this could also be achieved by specifying the explicit path to the css files used (templates/css).

 

In regard to the order status, or lack of, first look for the debug email and see what info is being shown.

 

For this module, v2.9, no settings need to made in your PayPal account profile, other than having a PayPal account, and possibly enabling Auto-Return, see the config and faqs.

 

Verifying addresses, PayPal will include info as to whether the address is confirmed. It is possible to do a cross tabulation to determine whether the order would be eligible for buyer protection but PayPal have advised against doing this at this time (or a while ago atleast).

 

In regard to some of the above posts, it should be noted that the other module is currently not suitable for downloadable media, the problem about changing the url to checkout_process.php without actually paying at PayPal still exists, so downloads still become immediately available. Also if using that module, one must ensure that Encryption is enabled in the PayPal IPN config otherwise the payment information is not obfuscated and from reading it's code it seems like that it is possible to send PayPal a payment for that order for only $0.01 and the module will accept the payment regardless of the expected actual order amount. Another aspect is that since that module prestores the order prior to the customer actually clicking the 'osCommerce Order Confirmation Button' the storeowner cannot determine whether the customer actually confirmed that they wanted to make the order, which prevents the storeowner from potentially following up the sale/order without any clear indication that the customer wanted to make the purchase.


"Any fool can know. The point is to understand." -- Albert Einstein

Share this post


Link to post
Share on other sites

Hi,

Just worked out what the problem was, as the shop I am creating is not live yet, I had protected the shop with a password and obviously paypal didnt have the password, doh!!! One of those stupid simple mistakes that you just dont think of :-)

But thanks for the help,

Richard

Share this post


Link to post
Share on other sites

Greg dont know if you can help or anyone else.

 

Had to reinstall my mysql database from the original oscommerce so had to re-put up the paypal ipn sql.

 

All works it appears as a payment module and i install it.

 

However, when your in the shop and you get to payment section it doesnt appear as a payment, the user cannot select it.

 

Anyone had this problem and fixed it?

 

Many thanks for any help :)

 

Hope someone can help :(

Share this post


Link to post
Share on other sites
My appologies help should also be attributed to royalfunk, thanks

 

I believe the URL you should use is the full path to your catalog, i.e. yourdomain.com/catalog. That's what I do. If I am incorrect someone please post the right answer. Thanks.

Share this post


Link to post
Share on other sites

From Greg:

In regard to the order status, or lack of, first look for the debug email and see what info is being shown.

 

Thanks for the response, I'm just not sure what I'm looking for in the debug.

 

Below is an example of a debug email (with x's replacing user info) - Also, in the admin panel under customers/paypal ipn - there is nothing listed.

 

txn_type=send_money

payment_date=04:37:25 Dec 02, 2004 PST

last_name= Wxxxxxx

payment_gross=20.75

mc_currency=USD

payment_type=echeck

address_street=36 Nxxxxxx Rxxx

payer_status=verified

verify_sign=Ak20Sj18QKfGDdCMWU7JqFT2.GTGA4xZMa-8PU7Dlf6RkKeZZDITWzyI

payer_email=axxxxxx@juno.com

txn_id=6NY5342765657210M

address_status=unconfirmed

first_name=Axxxxxx

receiver_email=tykiediapers@sbcglobal.net

payer_id=ZYCVSVQDP2W6Y

receiver_id=ARZ92SNHKVAQQ

address_city=Sxxxx Hxxxxx

address_state=Mx

payment_status=Completed

mc_fee=0.90

payment_fee=0.90

mc_gross=20.75

address_zip=01982

notify_version=1.6

address_country=United States

address_name=Axxxx Wxxxxxxx

 

 

------------------------------------------------------

PayPal Response

------------------------------------------------------

VERIFIED

 

------------------------------------------------------

Connection Type

------------------------------------------------------

curl: 1 transport: domain: www.paypal.com port:

 

------------------------------------------------------

Email and Business ID config

------------------------------------------------------

Store Configuration Settings

Primary PayPal Email Address: tykiediapers@sbcglobal.net

Business ID: tykiediapers@sbcglobal.net

------------------------------------------------------

PayPal Configuration Settings

Primary PayPal Email Address: tykiediapers@sbcglobal.net

Business ID:

 

PayPal Transaction ID: 6NY5342765657210M

 

------------------------------------------------------

Edited by StarryJen

Share this post


Link to post
Share on other sites

 

Is the PayPal payment module, 'installed' and 'enabled' in your osC Admin config? these are the only two factors that should determine whether the payment module is available during checkout. Try uninstalling (click remove) and then re-install again and see if it re-appears.

 

 

 

You shouldn't need to specify any url or even have to enable it in your paypal account profile, the contrib will specify to paypal to use IPN, whoever you could view the source of the checkout 'splash' page (disable javascript in your browser prior to clicking the confirm button) and see what URL is being specified in the 'notify_url' field.

 

 

From Greg:

Business ID:

 

PayPal Transaction ID: 6NY5342765657210M

 

------------------------------------------------------

 

From the above it looks like there's something wrong with the expected 'Business ID' being passed back from PayPal, here I'm assuming that it is supposed to be the same as your Primary Email Address, but for some reason it's missing, wierd? also notice that you have a PayPal Transaction ID showing, I can't recall this being done in the debug emails being sent by this contrib. Can you look to see if these two things are happening in your other debug emails...


"Any fool can know. The point is to understand." -- Albert Einstein

Share this post


Link to post
Share on other sites
Can you look to see if these two things are happening in your other debug emails...

 

 

Yep, it occurs in a previous transaction:

 

Business ID:

 

PayPal Transaction ID: 7HX0247515976262F

***

Business ID:

 

PayPal Transaction ID: 1SV47434PH7324049

***

 

I am not able to find anything before 12/4, as my webmail dumps deleted items at the beginning of the month.

 

Also, the customers must be seeing some sort of error, it looks like they are trying over and over again. I get multiple debug emails for the same purchase just minutes apart.

Edited by StarryJen

Share this post


Link to post
Share on other sites

Help I am stumped. I cannot find the Transaction ID in the admin orders all I see is

 

No PayPal Transaction Information Available (f0e4e6b6749453dee586d7c08035d852)

 

am I supposed to use the invoice # for the transaction id.

 

I am trying to final test the ipn & paypal

 

Jimmy


I'm not a coder just a splicer.

Share this post


Link to post
Share on other sites

hmm, that edit button disappears too quick!

I checked my mom's paypal account and she did not have any business information set up. I've added the basic info without upgrading her account.

I am going to turn the debug emails back on, and I will report back here with the results of whether the Business id is populated now. Still stumped on that other id though...

Share this post


Link to post
Share on other sites

The transaction signature, e.g for the above transaction (f0e4e6b6749453dee586d7c08035d852), could then be used in the IPN Test Panel (see the help page), and this will determine whether the IPNs should then work in live (or sandbox) mode, the IPN Test Panel test will determine whether there are any errors occuring (must be in test mode first). Once an IPN has been processed you should then see info about the payment, see the documentation for info.

 

Don't you already have a 'Premier' PayPal account, you need either a Premier or Merchant PayPal account in order to receive money, but you've been doing so for some time now???

Regarding the edit button, you need to disable javascript so as to do this, download the FireFox Web Browser


"Any fool can know. The point is to understand." -- Albert Einstein

Share this post


Link to post
Share on other sites

Thanks Greg, I just seem to be stuck somewhere here when using the ipn test panel, I get a blank page and no IPN update. I am using 2.9 I had 2.6 working like a breeze but I must be missing somthing. All my edits ar correct & file copying.

 

Jimmy


I'm not a coder just a splicer.

Share this post


Link to post
Share on other sites

Hi Jimmy,

 

Ok, edit catalog/includes/modules/payment/paypal/application_top.inc.php

 

and at the top change

 

// set the level of error reporting
   //error_reporting(E_ALL & ~E_NOTICE);
   error_reporting(0);

To

// set the level of error reporting

    error_reporting(E_ALL & ~E_NOTICE);

    //error_reporting(0);

 

This will now display the errors instead of showing a blank page. Previously the most common error was because of '$language' or '$languages_id' but this should be ok now, see the bottom of that application_top.inc.php page for '$language' and '$languages_id' should be taken of now in the main ipn.php script.


"Any fool can know. The point is to understand." -- Albert Einstein

Share this post


Link to post
Share on other sites
Don't you already have a 'Premier' PayPal account, you need either a Premier or Merchant PayPal account in order to receive money, but you've been doing so for some time now???

Regarding the edit button, you need to disable javascript so as to do this, download the FireFox Web Browser

 

I've been using firefox since beta - the edit button disappears after a certain time period. The admin have set this, as I run an ipb board and we have turned that feature off. pain to not be able to edit posts after say 20 minutes or whatever.

 

For the paypal thing, I got another email and it's the same:

Business ID:

 

PayPal Transaction ID: 6NY5342765657210M

 

I will check the status of my mom's account. I know that she accepts credit cards, but I'm not sure what kind of account she has exactly. Oh, and yes, she has been recieving paypal money for some time now via the ipn modules.

 

//edit:

 

Per paypal her account is Premier:

this is from the start page after logging in.

U.S. Premier Account Overview

Edited by StarryJen

Share this post


Link to post
Share on other sites

Ah, thought you meant viewing the source of the html 'splash' page during checkout. Regarding the empty Buisiness ID field, this really shouldn't have any effect from any of your PayPal settings, PayPal will automatically insert the same email address into both the Primary Email Address (receiver_id) and Business ID (business) fields in the IPN (assuming that the PayPal account has only one email address registered).

Edited by devosc

"Any fool can know. The point is to understand." -- Albert Einstein

Share this post


Link to post
Share on other sites

Ok, makes sense - what of the paypal id?

 

Any other ideas what might be wrong with the admin panel not being updated in either the customers/paypal ipn section or the status changing once the webshop has been notified back by paypal that the payment was processed?

 

I don't think I'm getting a notification back from paypal at all.

Edited by StarryJen

Share this post


Link to post
Share on other sites

If you're getting the debug emails, then your receiving the IPNs, it's because the Business ID field is empty that prevents the IPN from being processed, this is part of the IPN validation proceedure to ensure payment was sent to the correct person (you).

The PayPal Transaction ID is being included (I just checked the script) because the the Receiver and Business ID validation is failing. We could work around it as long as the receiver email address is the correct one, but it's puzzling why all of a sudden your reporting this problem, I haven't noticed this problem in recent tests....

 

If you like, in catalog/includes/modules/payment/paypal/classes/Client/Connector.class.php

change (near line 105)

if(!strcmp(strtolower($receiver_email),strtolower($this->key['receiver_email'])) && !strcmp(strtolower($business),strtolower($this->key['business']))) {

To

if(!strcmp(strtolower($receiver_email),strtolower($this->key['receiver_email']))) {
but as said it's puzzling why this problem is happening in the first place. Edited by devosc

"Any fool can know. The point is to understand." -- Albert Einstein

Share this post


Link to post
Share on other sites
Hi Jimmy,

 

Ok, edit catalog/includes/modules/payment/paypal/application_top.inc.php

 

and at the top change

 

// set the level of error reporting
? ?//error_reporting(E_ALL & ~E_NOTICE);
? ?error_reporting(0);

To

This will now display the errors instead of showing a blank page. Previously the most common error was because of '$language' or '$languages_id' but this should be ok now, see the bottom of that application_top.inc.php page for '$language' and '$languages_id' should be taken of now in the main ipn.php script.

 

Ok Greg, I may have missinformed you, when I enter say 35 for a transaction id I get a blank page, if I enter the long alphnumeric above, I get error invalid transaction id or paypal350000000 etc the same error.

 

Jimmy


I'm not a coder just a splicer.

Share this post


Link to post
Share on other sites

The transaction signature should be inserted into both the 'Custom' and 'Transaction ID' in the IPN Test Panel, the Transaction ID field will truncate the transaction signature since it only needs to be 17 chars in length but 'must' be unique (hence suggestion to past the transaction signature). This should then cause the test to go through ok and you'll see the same info sent in the debug email being displayed to the screen, scroll through and you should see IPN 'inserted' and as long as the 'amount and currency' as correct (e.g. must enter the correct values in the Test IPN as what is expected of the order) then you'll see the transaction info in the admin (if the amounts are not the same the order will be put on hold and you'll have to manually accept the order/IPN payment).


"Any fool can know. The point is to understand." -- Albert Einstein

Share this post


Link to post
Share on other sites

Thank you for the work around, I have since realized that my mom's account was not upgraded to a business account - which is what allows me to enter her business id email, and allows her to accept credit cards.

 

I will await another ipn transaction to see if there are any changes, if not - I will do the edit above and get back to you.

 

Thanks so much for all your assistance on this. I really like the look, feel, and flexibility of this module over the core teams.

Share this post


Link to post
Share on other sites

Ok I noticed my order_id counter is incrementing by 2 or 3 this is weird I am the only one testing.

 

IPN states completed, but the order is still pending where I think it should change to processed

 

Got a debug.

 

 

Test Complete

------------------------------------------------------

PayPal_Shopping_Cart_IPN Debug Email Notification

------------------------------------------------------

business=sales@xxxxxxx.com

receiver_email=xxxxx@cox.net

verify_sign=PAYPAL_SHOPPING_CART_IPN-TEST_TRANSACTION-00000000000000

payment_date=23:10:11 Dec 07, 2004 EST

digestKey=9649d3edc68b63f177143a965fade074

first_name=John

last_name=Doe

payer_business_name=ACME Inc.

payer_email=root@localhost

payer_id=PAYERID000000

payer_status=verified

invoice=

address_name=John Doe

address_street=1 Way Street

address_city=NeverNever

address_state=CA

address_zip=12345

address_country=United States

address_status=confirmed

payment_type=instant

txn_type=cart

custom=0f6b48168f85a22abc501cd9ebb16608

txn_id=0f6b48168f85a22ab

parent_txn_id=

num_cart_items=1

notify_version=1.6

memo=PAYPAL_SHOPPING_CART_IPN TEST

mc_currency=USD

mc_gross=10.00

mc_fee=0.01

settle_amount=0.00

settle_currency=

exchange_rate=0.00

payment_status=Completed

pending_reason=

reason_code=

submit=Test IPN

 

 

------------------------------------------------------

PayPal Response

------------------------------------------------------

INVALID

 

------------------------------------------------------

Connection Type

------------------------------------------------------

curl: 1 transport: domain: www.paypal.com port:

 

------------------------------------------------------

Email and Business ID config

------------------------------------------------------

Store Configuration Settings

Primary PayPal Email Address: xxxxx@cox.net

Business ID: sales@xxxxx.com

------------------------------------------------------

PayPal Configuration Settings

Primary PayPal Email Address: xxxxx@cox.net

Business ID: sales@xxxxxxx.com

 

------------------------------------------------------

Duplicate Transaction

------------------------------------------------------

A duplicate IPN transaction (0f6b48168f85a22ab) has been received.

Please check your PayPal Account

 

 

Jimmy


I'm not a coder just a splicer.

Share this post


Link to post
Share on other sites

Try starting a fresh with a new order and see what happens (you shouldn't get a duplicate since each transaction signature is unique), also check your osC Admin PayPal Payment config settings, they should be something like:

Set Pending Notification Status

Pending

 

Set Order Status

Processing

 

Set On Hold Order Status

On Hold

 

Set Canceled Order Status

Canceled

The 'Set Order Status' is what is used once the IPN is processed (successfully, e.g Payment is 'Completed').


"Any fool can know. The point is to understand." -- Albert Einstein

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×