Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Quickbooks Merchant Service v1.0


MediaHound

Recommended Posts

Hi, I have a client who is already using QB Merchant Services on another cart and for their retail store. We are switching them over to osCommerce and he wants to try and integrate QBMS with osCommerce. In reading this thread, it looks pretty daunting, and I'm wondering if there's somebody out there who has done this before who might be willing and able to consult with us to implement. If so, please send me a private message so we can discuss the specs and pricing.

 

Thanks!

Janet

Link to comment
Share on other sites

  • 2 weeks later...
  • Replies 106
  • Created
  • Last Reply

Top Posters In This Topic

This is a great tutorial - thanks for all the time spent putting it together. I am successfully running in Desktop mode in the test environment. Here's some feedback...

 

1. I had to increase CURLOPT_TIMEOUT to 15 - otherwise I would always get an error. Could this be just my setup, or the test environment?

 

2. I would like to be able to offer the user a selection (drop-down list) of which credit cards we accept, rather than telling them after the validation that the one the entered isn't accepted. It would be nice if this list was manged in the admin.

 

3. No CC info is stored in the database. authcode and transid are captured, but they don't go anywhere. There are fields in the DB for owner, card number, expirey date, etc. but these never get inserted. I tried a quick fix, but I don't know PHP and the scoping rules are different than what I'm used to (this->cc_card_owner, etc are not valid in before_process()).

 

4. Other web-sites I've used only verify credit card info at time of order, and then charge the card when the items are shipped. This helps if something isn't shipped right away as the customer gets charged only when the items are shipped.

 

5. Since no CC info is stored, there is no way to give a credit.

 

Do people agree that these would be good features? If so, is anyone working on them or should I start hacking away :o

 

Rob

Link to comment
Share on other sites

  • 2 weeks later...
Ok so it looks like i was able to successfully get Ticket number(TGT) i also put in the IP address for the server, all the certs seem to be in place (i figured because QBMS posted the ticket) i put in the intuit.pem file i updated the info in the module... then i go and try test the server and i get

Error!

 

An error has occurred within our system while trying to process your credit card. Please try this transaction again. If the problem persists, please call 1-800-317-6958 to place your order.

 

 

I am getting this same error. I am using desktop mode and I have been through every post I can find on this topic and have done everything.

I have a TGT code, I have an appID, I have the application login. I don't need the cert or IP since it is in desktop mode.

Yet, I keep getting this message that says

An error has occurred within our system while trying to process your credit card. Please try this transaction again. If the problem persists, please call 1-800-317-6958 to place your order.

 

Please help.

 

Thanks

Link to comment
Share on other sites

An error has occurred within our system while trying to process your credit card. Please try this transaction again. If the problem persists, please call 1-800-317-6958 to place your order.

 

 

Try increasing the CURLOPT_TIMEOUT to 15 (or maybe more). That's the problem I was having.

Link to comment
Share on other sites

Try increasing the CURLOPT_TIMEOUT to 15 (or maybe more). That's the problem I was having.

 

 

Yes, thanks, but I did that already since I saw you had posted about it.

Is it correct that I do not need a certificate for desktop mode?

And also that I do not need an IP?

Link to comment
Share on other sites

Try increasing the CURLOPT_TIMEOUT to 15 (or maybe more). That's the problem I was having.

 

 

I increased it to 60 just to be sure and received the same message. Then I decided to output the curl error number and it was 7 which is an unable to communicate with the url.

Is there a way for me to test the url directly?

Link to comment
Share on other sites

Try increasing the CURLOPT_TIMEOUT to 15 (or maybe more). That's the problem I was having.

 

I found the problem!! And it might take care of your original problem too, although I am not sure.

 

on like #239 of qbms.php

The constant is referred to as MODULE_PAYMENT_QBMS_CONNECTION_APPID

 

However, everywhere else in the file, it is referred to as MODULE_PAYMENT_QBMS_APPID

 

Therefore, the appid was not getting formed int the xml and not getting sent to quickbooks merchant by curl and therefore always coming back with system error code.

 

I am going to post a corrected file to the oscommerce contribution page as well

Link to comment
Share on other sites

I need some help here, as it seems I may be over my head just a little. I am helping out my sister-in-law by adding online purchasing to her primarily brick-and-mortar store. Her site is hosted by GoDaddy and she already has in-store services with QBMS (two choices I wouldn't have made but thats where I am now)

 

 

I installed oscommerce on her site pretty easily. At the moment it is up and running, but nothing links to it and I want to get everything just right before sending traffic there. I got PayPal to work as a payment method equally easily, and was able to install the qbms module equally as easily but am a little intimidated by the instructions found here: http://idnforums.intuit.com/messageview.as...p;threadid=7743 .

 

I have access to the QBMS account, and also created an account on IDN. For step two I am to go to this site: http://appreg.intuit.com . It asks for the domain name (should I use www.my-store.com or www.my-store.com/commerce which is where the web store is located?), and App name. What do I put here (what is the app name)?

 

Just looking ahead I see that I might have more trouble when I read the following lines:

"First you need to create a key file. This is the file that is used to unlock your certificate once it is issued.

 

openssl genrsa -out <KEYFILE NAME> 1024

 

example:

openssl genrsa -out lawrencefreenet.org.key 1024"

 

How do I create this key file? Is this line openssl genrsa -out <KEYFILE NAME> 1024 some kind of command I type into the command line of the server? If so what do I do if my host doesn't allow ssh? Can I generate this key file on a local machine?

 

Your help is greatly appreciated.

Link to comment
Share on other sites

...

 

Just looking ahead I see that I might have more trouble when I read the following lines:

"First you need to create a key file. This is the file that is used to unlock your certificate once it is issued.

 

openssl genrsa -out <KEYFILE NAME> 1024

 

example:

openssl genrsa -out lawrencefreenet.org.key 1024"

 

How do I create this key file? Is this line openssl genrsa -out <KEYFILE NAME> 1024 some kind of command I type into the command line of the server? If so what do I do if my host doesn't allow ssh? Can I generate this key file on a local machine?

 

Your help is greatly appreciated.

 

Yes, those are commands you need to run on the command line on the server. Anytime something is surrounded by < and >, it means you should substitute something appropriate (and specific to you.)

 

The key file will need to live on the web server. Dunno if you can generate it on a different machine and then upload it. I've never had reason to try that.

 

ej

Link to comment
Share on other sites

  • 2 weeks later...
hi there -

 

I was installing qbms.php on a shared host, and after going through the whole certificate/callback process realized that I had to use "Desktop" since the IP number which QBMS sees from my host is dynamic and does not match that of the website's IP. "Desktop" is also a lot easier to configure overall as theres no certificate/callback madness.

 

I adapted the XML snip posted on the Intuit support thread into qbms.php and added options for "Hosted/Desktop" and "App ID". With this version, the certificate file and originating IP are only needed if you selected "Hosted". The new version is attached to http://addons.oscommerce.com/info/5383 .

 

Is there a tutorial on installing the desktop version? After a week of messing with this I'm thinking of looking for a new merchant service provider and getting away from this "joke of one" called Quickbooks. I've used them for a year or so now, but never in an ecommerce function.

Link to comment
Share on other sites

I found the problem!! And it might take care of your original problem too, although I am not sure.

 

on like #239 of qbms.php

The constant is referred to as MODULE_PAYMENT_QBMS_CONNECTION_APPID

 

However, everywhere else in the file, it is referred to as MODULE_PAYMENT_QBMS_APPID

 

Therefore, the appid was not getting formed int the xml and not getting sent to quickbooks merchant by curl and therefore always coming back with system error code.

 

I am going to post a corrected file to the oscommerce contribution page as well

 

I'm having the same problem, getting the following error..

Error!

An error has occurred within our system while trying to process your credit card. Please try this transaction again. If the problem persists, please call 1-800-317-6958 to place your order.

 

I changed the curl timeout to 45 and I looked at the error you mention above.

 

Does line #239 need to be changed to MODULE_PAYMENT_QBMS_APPID?

 

I did that also and I still get the same error.

 

The credit card info I'm using to test is:

 

Gregory marin

CC# 4111 1111 1111 1111

Exp Date: Dec 2008

 

Any suggestions??

Link to comment
Share on other sites

Hello All,

 

I'm a PHP novice, but I think I'm getting close to the finish line with my QBMS setup but am stuck wondering what to do next. Here's a summary of where I am in hopes someone could please guide me (and anyone else who's stuck) to the next step.

 

I've created the necessary accounts with QBMS to be able to test.

 

I registered an app, and have the results from generating the CSR, but have no idea what to do with them. I read somewhere about creating PEM files with them, but I'm still not too sure.

 

I have a connection ticket that was autogenerated on my server from the QBMS connection screen.

 

I copied the latest QBMS 1.1 contribution to my catalog, but have no clue what to do with it now.

 

Other questions:

  • We should choose QBMS not QBOE in the app reg, correct?
  • Is it ok to have the connection ticket and intuit.php file in the root directory?
  • At what point can I test transactions by actually using the shopping cart?
  • I have SSL already working using completeSSL. Is this OK or do I need SSL cert from Intuit?

Thank you everyone,

-Brian

Edited by tenderhawk
Link to comment
Share on other sites

  • 3 months later...

Has anyone worked on, finished or has any info on any of these concerns? I have a need for at least items 3 & 4. If no one has, I'll start working on it....

 

This is a great tutorial - thanks for all the time spent putting it together. I am successfully running in Desktop mode in the test environment. Here's some feedback...

 

1. I had to increase CURLOPT_TIMEOUT to 15 - otherwise I would always get an error. Could this be just my setup, or the test environment?

 

2. I would like to be able to offer the user a selection (drop-down list) of which credit cards we accept, rather than telling them after the validation that the one the entered isn't accepted. It would be nice if this list was manged in the admin.

 

3. No CC info is stored in the database. authcode and transid are captured, but they don't go anywhere. There are fields in the DB for owner, card number, expirey date, etc. but these never get inserted. I tried a quick fix, but I don't know PHP and the scoping rules are different than what I'm used to (this->cc_card_owner, etc are not valid in before_process()).

 

4. Other web-sites I've used only verify credit card info at time of order, and then charge the card when the items are shipped. This helps if something isn't shipped right away as the customer gets charged only when the items are shipped.

 

5. Since no CC info is stored, there is no way to give a credit.

 

Do people agree that these would be good features? If so, is anyone working on them or should I start hacking away :o

 

Rob

Link to comment
Share on other sites

  • 2 weeks later...

I posted the following on the QBMS SDK forum: http://idnforums.intuit.com/messageview.as...p;enterthread=y These findings illustrate a couple of bugs that could be fixed for the next version:

 

I installed OS Commerce and the QBMS plugin available ( http://www.oscommerce.com/community/contributions,5383 ) on my machine to see what problems other developers may be having. Here are some tips and things I learned along the way (note, that as the developers of the plugin make changes, some of these issues may be resolved. I was using "Quickbooks Merchant Service v1.3").

 

This pertains to the Desktop Security Model configuration:

 

1. In the plugin configuration, if you have chosen the Desktop Model, you will need to clear out the IP Address field. It is set to 111.111.111.111 by default, but you need to delete this for the plugin code to execute correctly - if the value is non-null, the code assumes you are using the hosted model, which causes things to break.

 

2. In qbms.php, if you are using the desktop model, look for this snippet of code:

 

if(MODULE_PAYMENT_QBMS_TEST == 'True')

$QBMS_ApplicationPath = 'https://webmerchantaccount.ptc.quickbooks.com/j/AppGateway';

else

$QBMS_ApplicationPath = 'https://webmerchantaccount.quickbooks.com/j/AppGateway';

 

You will need to manually edit the links so that they point to urls without the 'web' prefix (the 'web' prefix is only used in the hosted security model):

 

if(MODULE_PAYMENT_QBMS_TEST == 'True')

$QBMS_ApplicationPath = 'https://merchantaccount.ptc.quickbooks.com/j/AppGateway';

else

$QBMS_ApplicationPath = 'https://merchantaccount.quickbooks.com/j/AppGateway';

 

3. If you are running this on a Windows machine and get curl error number 60 when attempting to send a transaction, then this site (http://www.vividreflection.com...url-in-php-on-windows/ ) explains what may be happening. Essentially, you need to download the standalone version of curl from http://curl.haxx.se/latest.cgi?curl=win32-ssl and place the url-ca-bundle.crt file in a location accessible to your web server. Then you need to add a line to qbms.php after curl_init():

 

curl_setopt($clientURL, CURLOPT_CAINFO, "c:/www/curl-ca-bundle.crt");

 

4. This is mentioned in qbms.php, but the plugin only allows one transaction per customer per 15 minute period. The transaction will show as successful in OS Commerce, but no funds will be transferred, as it is treated as a duplicate at the QBMS SDK end because the transcation id is the same. This is just a limitation of the plugin and is not QBMS SDK specific. You should just be aware of this when deciding whether to use the plugin or not.

Edited by Ryan_QBMS
Link to comment
Share on other sites

  • 5 months later...
This pertains to the Desktop Security Model configuration:

 

1. In the plugin configuration, if you have chosen the Desktop Model, you will need to clear out the IP Address field. It is set to 111.111.111.111 by default, but you need to delete this for the plugin code to execute correctly - if the value is non-null, the code assumes you are using the hosted model, which causes things to break.

 

THANK YOU! I was actually going to delete that yesterday, just to see if it made a difference. You just helped me get my first test transaction to go through.

 

I still do not have a connection ticket, and QBMS insist it "comes from the webstore" which is actually a department of their own company. They refuse to help us get one, and now after spending all morning on this, I see that I have to connect with them to get one - but all those directions are for the hosted versions and not the desktop. So I'm really really not sure what to do at this point.

 

Funny thing, the instructions for this module say, and I quote, "To install, simply copy the contents directly into your catalog folder." This has been one of hte longest installations I have ever done, and if not for the forums I'd have no support at all, because talking to QBMS on the phone is like hitting your head with a large brick... completely useless!

☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆

Link to comment
Share on other sites

I agree with you, seems like they just don't intend to give some helps even I thou I have QB account

unless I'm using one of the shopping cart they support just so that they can charge us more !

 

btw, whose IP i should input ? cuz I'm using hosted model :D

 

THANK YOU! I was actually going to delete that yesterday, just to see if it made a difference. You just helped me get my first test transaction to go through.

 

I still do not have a connection ticket, and QBMS insist it "comes from the webstore" which is actually a department of their own company. They refuse to help us get one, and now after spending all morning on this, I see that I have to connect with them to get one - but all those directions are for the hosted versions and not the desktop. So I'm really really not sure what to do at this point.

 

Funny thing, the instructions for this module say, and I quote, "To install, simply copy the contents directly into your catalog folder." This has been one of hte longest installations I have ever done, and if not for the forums I'd have no support at all, because talking to QBMS on the phone is like hitting your head with a large brick... completely useless!

Link to comment
Share on other sites

I agree with you, seems like they just don't intend to give some helps even I thou I have QB account

unless I'm using one of the shopping cart they support just so that they can charge us more !

 

btw, whose IP i should input ? cuz I'm using hosted model :D

 

i would think just enter the ip of the website (the server it's on).

☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆

Link to comment
Share on other sites

  • 3 weeks later...
Would anyone be willing to install this for me? I'll gladly pay... just message me. I'm having some major issues with it, and don't have time to deal with it. Let me know if you are interested. Thanks!

 

 

Do you just want the module installed or the whole cart also? Let me know.

☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆

Link to comment
Share on other sites

I'm still having trouble with the client's cart - it shows orders but they are not processing. I looked in the database and no cc information is being recorded. Does anybody have any idea what could be causing this? Any help would be much appreciated. Thanks!

☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...