My Quickbooks Merchant Services HELL is over!

I have spent the last 2 days trying to get QBMS to work with my cart. I even opened a support ticket that cost me 5 credits only to have them tell me to follow what they’ve already got posted which isn’t much help.



If anyone else is going through this hell of generating a CSR and then what to do with it to get Quckbooks Merchant Services working… this link was the thing that got mine working… follow it… step by step until you get to where you’re not doing that stuff… (he goes off on PHP programming)



HOW I GOT QBMS WORKING

mattcaswell’s thread helped me solve my problem, but I had some additional steps that I thought I should post, to help anyone else get through the QBMS integration. The article he posted only started my run down the rabbit hole… It was unfortunately not a complete and thorough solution, so I’ve put a few notes together to help shed some light on this.


  1. Follow Intuit’s instructions:

    [ [url]https://idnforums.intuit.com/messageview.aspx?catid=3&threadid=7743[/url] ]



    1a. First, register a “testing” application with Intuit; but keep in mind that you’ll have to do this whole thing again when you’re ready to make your production version (for live CC processing).



    1b. Where they suggest the callback URL, use what CS-Cart suggests (https://www.yoursite.com/payments/qbms_response.php). The article is written for a very basic PHP purpose (it suggests posting your own “intuit.php” and adding that as your callback) and doesn’t take into account that CS-Cart already has these set up.



    1c. In the instructions talking about “openssl” commands, I couldn’t use this because my domain name was too long. So I used “keytool” commands ( in the Terminal window on my mac running OS X 10.5.8 ) as described here:

    [ [url]Intuit Developer ].


  2. Create the “qbms_cert.txt” that CS-Cart needs. CS-Cart’s inline instructions for configuring your QBMS payment gateway were as follows:

    [I]After you have created the certificates (Intuit CA & Client Signed) please do the following:
  3. extract the key from the CSR you created (these steps are applicable only if keytool was used)
  1. Save the client signed certificate to the file (e.g. qbms_cert.txt)
  2. Save to the same file the Key that was extracted at step 1.
  3. Copy the resulted file to the [store]/payments/certificates and set the value of “Certificate filename” to the filename.[/I]



    Rather than using the java tool in step 1 above, I found another equivalent tool here:

    [ [url]http://coreygilmore.com/blog/2009/06/03/export-a-private-key-from-a-java-keystore/[/url] ]

    The instructions from Corey Gilmore are simple and didn’t require any installation or compilation.



    After all that, I had 3 text documents:
  • the public certificate from Intuit
  • the signed certificate from Intuit
  • the private key



    Take the private key and the signed certificate and put them together in a text file named “qbms_cert.txt” (key first, signed certificate beginning on the line below the key). Upload this to yoursite.com/payments/certificates/. (this is really just steps 2, 3, and 4 written in a different way, I guess…).


  1. After your QBMS stuff is all in place with CS-Cart, to register your production application, use this URL (with your own AppID):

    [ [url]http://merchantaccount.quickbooks.com/j/sdkconnection/connectionList?appid=109527395&serviceid=1002&appdata=MyAppData[/url] ]



    When you hit the above URL, you should have the opportunity to login to Intuit, and “use this connection”. You can test your CS-Cart installation to make sure that it took, by looking at your QBMS configuration again: the field labeled “Connection Ticket” should have a value in it now. If it does, you’re configured properly!



    If the “Connection Ticket” field is blank, or your run into some errors along the way, look at the comments, and particularly idnTommy’s notes on the Intuit article noted at the top of this thread for other helpful tips.







    Hopefully this is helpful to someone.



    -B

Hi all im having issues trying to figure out where to create the CSR or are they wanting the CSR that comes from the SSL company i have ?



or do i need a new CSR ?



what do i do to achieve this



First person that helps me get Quickbooks merchant services set up working on my site will get a $ 25.00 gift certificate



that is how important it is for me to get this working asap loosing business cause alot of customers dont use paypal

I have my APP ID but dont have the CSR i do not know where to obtain it or know how to create it at all .

I just had to do this whole thing again, so here are the steps I took.


  1. go to [ appreg.intuit.com ] and register a new hosted app.


  1. I created a new keystore. In a Terminal window on my Mac, I typed the following:



    keytool -keystore mykeys.keystore -alias myapp.mycscartdomain.com -genkey
  • entered a password (remember it, you’ll need it again!)
  • for “first and last name” I put “www.mycscartdomain.com:myapp.mycscartdomain.com”
  • entered basic business info after that


  1. I generated a CSR from my keystore, to use with QBMS. In a Terminal window on my Mac, I typed the following:



    keytool -certreq -alias myapp.mycscartdomain.com -keystore mykeys.keystore -file mykeys.req



    (this created a file called “mykeys.req” in my user’s home directory, which contains the Certificate Signing Request / CSR)


  2. Back at appreg.intuit.com, I entered the CSR from step 3 into the field on the website and hit Submit, and it came back with 2 boxes of text. I saved the top one as “myapp-intuit.cer” and the bottom one as “myapp-intuit-signed.cer”, and put these files in my home directory.


  3. I imported the Intuit CA Certificate. In a Terminal window on my Mac, I typed the following:



    keytool -import -file myapp-intuit.cer -alias intuit -keystore mykeys.keystore



    it asks you if you want to trust the certificate; say yes.


  4. I imported the Intuit SIGNED Certificate. In a Terminal window on my Mac, I typed the following:



    keytool -import -file myapp-intuit-signed.cer -alias myapp.mycscartdomain.com -keystore mykeys.keystore


  5. I downloaded the Key Exporter tool from [ [url]http://coreygilmore.com/blog/2009/06/03/export-a-private-key-from-a-java-keystore/[/url] ] and put the ZIP file in my home directory.


  6. I exported the private key from my keystore. In a Terminal window on my Mac, I typed the following:



    java -jar ExportPrivateKey.zip mykeys.keystore JKS mypassword myapp.mycscartdomain.com qbms_cert.txt



    (this created a file called “qbms_cert.txt” in my user’s home directory, which contains the private key for this certificate.)


  7. I combined the private key and the Intuit SIGNED cert together into one file, simply by copying the contents of “myapp-intuit-signed.cer” (from step 4) and pasting them on the end of the “qbms_cert.txt” file (from step 8 ). In the end, I had something that looked like this:



    -----BEGIN PRIVATE KEY-----

    MIIBSwIBA…4C2tdK9ODPt0U=

    -----END PRIVATE KEY-----

    -----BEGIN CERTIFICATE-----

    MIIEHjCCAaX3xiq…kPk=

    -----END CERTIFICATE-----


  8. I uploaded the “qbms_cert.txt” file from step 9 to my CS-Cart install, to the “/payments/certificates/” folder.


  9. In my CS-Cart admin panel, I configured QBMS:



    Go Administration > Payment Methods, click “edit” next to “Credit card”. Make sure your “Processor” = “QB Merchant Service”. Click the “Configure” tab and enter your information.


  • App Login = myapp.mycscartdomain.com
  • App ID = ######### (your AppID)
  • Cert filename = "qbms_cert.txt"
  • Connection Ticket (this is blank for now)
  • Test/Live (I set this live because I’ve been doing this for a few days and am very comfortable with it…but this setting depends on whether your App is in “Production/Live” or “Beta/Test”)
  • Order Prefix = blank


  1. I registered my application with QBMS. I opened this link [ [url]http://merchantaccount.quickbooks.com/j/sdkconnection/connectionList?appid=109527395&serviceid=1002&appdata=MyAppData[/url] ] (be sure to put your App ID in where this one is listed).



    If you haven’t logged in, you’ll have to do so first. Make sure that you use a login that’s associated with the actual QBMS account (as this may be different from the one you used at appreg.intuit.com). Once logged in, you’ll see a list of Applications in a table (probably blank), with some buttons below.



    If your app shows up in the table, click the radio button next to it and hit “Use this Connection”. If it doesn’t show up in the table, hit “Create new Connection”. Either way, you should come to a page that says “Congratulations!”


  2. I verified that my app talked with CS-Cart by finding the Connection Ticket now has a value. In CS-Cart, again go look at your Credit card configuration, and you should now see a value like “T3G-115-f34qt345t34fg4320123kfg”.



    If you see a value here, you’re all set to start testing the front-end of your CS-Cart install!!



    -----



    phew.

only problem i have is i have windows 7 and i dont have no program that works with windows 7 64 bit to create a certificate



thats why i need someone to help me on this that does not have windows 7 64 bit



I do hope my hosting company can use the above method to help get me going

Amazing. My QBMS account was just approved yesterday, and this thread got everything working, especially the simplified steps by BOFCO. I’ve never done most of these steps for anything before, I am no programmer, never use Terminal, but creating the certificates on the Mac worked just as you said. THANKS!!



One note though that caught me. Since I was copy/pasting the command’s from BOFCO’s to-do-list, watch out for this: In #4, you create a file called “myapp-intuit-signed.cer” … and in #6 you refer to it in the terminal command:



keytool -import -file myapp-signed-intuit.cer -alias myapp.mycscartdomain.com -keystore mykeys.keystore



Notice the file name is swapped … “myapp-signed-intuit.cer” instead of myapp-intuit-signed-intuit.cer



Otherwise it’s perfect!

[quote name=‘oiden’]Amazing. My QBMS account was just approved yesterday, and this thread got everything working, especially the simplified steps by BOFCO. I’ve never done most of these steps for anything before, I am no programmer, never use Terminal, but creating the certificates on the Mac worked just as you said. THANKS!!



One note though that caught me. Since I was copy/pasting the command’s from BOFCO’s to-do-list, watch out for this: In #4, you create a file called “myapp-intuit-signed.cer” … and in #6 you refer to it in the terminal command:



keytool -import -file myapp-signed-intuit.cer -alias myapp.mycscartdomain.com -keystore mykeys.keystore



Notice the file name is swapped … “myapp-signed-intuit.cer” instead of myapp-intuit-signed-intuit.cer



Otherwise it’s perfect![/QUOTE]



i wish i could

[quote name=‘bofco’]I just had to do this whole thing again, so here are the steps I took.


  1. go to [ appreg.intuit.com ] and register a new hosted app.


  1. I created a new keystore. In a Terminal window on my Mac, I typed the following:



    keytool -keystore mykeys.keystore -alias myapp.mycscartdomain.com -genkey
  • entered a password (remember it, you’ll need it again!)
  • for “first and last name” I put “www.mycscartdomain.com:myapp.mycscartdomain.com”
  • entered basic business info after that


  1. I generated a CSR from my keystore, to use with QBMS. In a Terminal window on my Mac, I typed the following:



    keytool -certreq -alias myapp.mycscartdomain.com -keystore mykeys.keystore -file mykeys.req



    (this created a file called “mykeys.req” in my user’s home directory, which contains the Certificate Signing Request / CSR)


  2. Back at appreg.intuit.com, I entered the CSR from step 3 into the field on the website and hit Submit, and it came back with 2 boxes of text. I saved the top one as “myapp-intuit.cer” and the bottom one as “myapp-intuit-signed.cer”, and put these files in my home directory.


  3. I imported the Intuit CA Certificate. In a Terminal window on my Mac, I typed the following:



    keytool -import -file myapp-intuit.cer -alias intuit -keystore mykeys.keystore



    it asks you if you want to trust the certificate; say yes.


  4. I imported the Intuit SIGNED Certificate. In a Terminal window on my Mac, I typed the following:



    keytool -import -file myapp-signed-intuit.cer -alias myapp.mycscartdomain.com -keystore mykeys.keystore


  5. I downloaded the Key Exporter tool from [ [url]http://coreygilmore.com/blog/2009/06/03/export-a-private-key-from-a-java-keystore/[/url] ] and put the ZIP file in my home directory.


  6. I exported the private key from my keystore. In a Terminal window on my Mac, I typed the following:



    java -jar ExportPrivateKey.zip mykeys.keystore JKS mypassword myapp.mycscartdomain.com qbms_cert.txt



    (this created a file called “qbms_cert.txt” in my user’s home directory, which contains the private key for this certificate.)


  7. I combined the private key and the Intuit SIGNED cert together into one file, simply by copying the contents of “myapp-intuit-signed.cer” (from step 4) and pasting them on the end of the “qbms_cert.txt” file (from step 8 ). In the end, I had something that looked like this:



    -----BEGIN PRIVATE KEY-----

    MIIBSwIBA…4C2tdK9ODPt0U=

    -----END PRIVATE KEY-----

    -----BEGIN CERTIFICATE-----

    MIIEHjCCAaX3xiq…kPk=

    -----END CERTIFICATE-----


  8. I uploaded the “qbms_cert.txt” file from step 9 to my CS-Cart install, to the “/payments/certificates/” folder.


  9. In my CS-Cart admin panel, I configured QBMS:



    Go Administration > Payment Methods, click “edit” next to “Credit card”. Make sure your “Processor” = “QB Merchant Service”. Click the “Configure” tab and enter your information.


  • App Login = myapp.mycscartdomain.com
  • App ID = ######### (your AppID)
  • Cert filename = "qbms_cert.txt"
  • Connection Ticket (this is blank for now)
  • Test/Live (I set this live because I’ve been doing this for a few days and am very comfortable with it…but this setting depends on whether your App is in “Production/Live” or “Beta/Test”)
  • Order Prefix = blank


  1. I registered my application with QBMS. I opened this link [ [url]http://merchantaccount.quickbooks.com/j/sdkconnection/connectionList?appid=109527395&serviceid=1002&appdata=MyAppData[/url] ] (be sure to put your App ID in where this one is listed).



    If you haven’t logged in, you’ll have to do so first. Make sure that you use a login that’s associated with the actual QBMS account (as this may be different from the one you used at appreg.intuit.com). Once logged in, you’ll see a list of Applications in a table (probably blank), with some buttons below.



    If your app shows up in the table, click the radio button next to it and hit “Use this Connection”. If it doesn’t show up in the table, hit “Create new Connection”. Either way, you should come to a page that says “Congratulations!”


  2. I verified that my app talked with CS-Cart by finding the Connection Ticket now has a value. In CS-Cart, again go look at your Credit card configuration, and you should now see a value like “T3G-115-f34qt345t34fg4320123kfg”.



    If you see a value here, you’re all set to start testing the front-end of your CS-Cart install!!



    -----



    phew.[/QUOTE]

    problem i am having is i uploaded the file to the qbms_cert.txt with the private key and the second certificate they created for me off the one i submitted to them



    its not giving me a connection ticket

    what did i do wrong ?



    also problem is i dont have a mac computer i have windows 7 64 bit and i dont see any terminal window anywhere



    so if someone can help me that has a mac computer like i said i will give $ 25.00 gift certificate to that person that helps me get this done

In trying to figure out how this stuff worked, I followed the instructions from [ [url]https://idnforums.intuit.com/messageview.aspx?catid=3&threadid=7743[/url] ]. That’s where this is basically from. The idea here is that instead of pointing Intuit to talk directly with CS-Cart, you point it to talk to a very basic PHP script that creates a file.



If you’re not seeing the Connection Ticket, which is the very last step, try this


  1. Create a new PHP file called “intuit.php” with this content:



    ```php //This script is accessed by Intuit's QBMS to return data from a request.

    $PHP_ConnectionTicket = $_POST['conntkt'];
    $PHP_AppData = $_POST['appdata'];
    $PHP_AppID = $_POST['appid'];

    $handle = fopen("/tmp/ticket.txt", "w");
    fwrite($handle, $PHP_ConnectionTicket."\n");
    fwrite($handle, $PHP_AppData."\n");
    fwrite($handle, $PHP_AppID."\n");

    ?> ```


  2. Upload the file “intuit.php” to the main directory of your CS-Cart install.


  3. Login to appreg.intuit.com and change your callback URLs (the top 3) for your app to “https://www.mycscartdomain.com/intuit.php”.


  4. Open the link [ [url]http://merchantaccount.quickbooks.com/j/sdkconnection/connectionList?appid=109527395&serviceid=1002&appdata=MyAppData[/url] ] (with your AppID). (see step 12 in my notes above about registering the connection).


  5. If you get to the “Congratulations” screen, go back to your root directory, and look for a new folder called “tmp” and a file in that folder called “ticket.txt”, which should have been created by Intuit using the callback URLs you specified.


  6. If you see this file, it means that all your settings with Intuit are correct, and you need to change your Callback URLs back to what CS-Cart suggests and do step 4 again. If you don’t see this file, you should probably start at the top (of my first post) and walk back through the steps again.


  7. After you register your connection, open your Credit card configuration in CS-Cart and check if the Ticket has a value. You can also look in MySQL at the “payments” table to see if your connection ticket is empty…

lawnmowertech -



I’m not really sure about creating a keystore and generating a CSR properly on Windows 7… I believe that the “keytool” command line app is available as part of the Java SDK which is freely available… I did a quick search and found this link [ [url]http://yellowcat1.free.fr/keytool_iui.html[/url] ] which has some suggestions for keystore manipulation.



Another link that has line-by-line suggestions for keytool work in Windows (requires Java 1.4 SDK again): [ [url]http://apac.globalsign.com/support/index.php?action=artikel&cat=6&id=8&artlang=en[/url] ].



Some of the other instructions I stumbled upon included use of openssl rather than keytool…that’s available here: [ [url]http://www.openssl.org/related/binaries.html[/url] ].

[quote name=‘oiden’]

One note though that caught me. Since I was copy/pasting the command’s from BOFCO’s to-do-list, watch out for this: In #4, you create a file called “myapp-intuit-signed.cer” … and in #6 you refer to it in the terminal command:



keytool -import -file myapp-signed-intuit.cer -alias myapp.mycscartdomain.com -keystore mykeys.keystore



Notice the file name is swapped … “myapp-signed-intuit.cer” instead of myapp-intuit-signed-intuit.cer



Otherwise it’s perfect![/QUOTE]



Got this fixed, thanks!

Thought I’d share this link, for those of you who may need help generating your Certificate and CSR. If you’re on a PC and don’t have the Java SDK installed, you may not have the “keytool” program available on your system. (those of you on a Mac already have it, because Macs have Java natively!)



[url]https://www.digicert.com/easy-csr/keytool.htm[/url]



I haven’t tried it out myself, but maybe it will help someone.

ALL,

I got the parts in the posts to work but now I get in my logs this error



Response: HTTPS: libcurl error(58): unable to use client certificate (no key found or wrong pass phrase?)



Any thing I am missing??

THanks

I know this thread is a little old, but I’m hoping someone can help me.



I followed all of the steps and got through everything, but I still have no @#$$@$%# connection ticket.



Any help?



When I get through all of this, I’m going to write a small tutorial, becuase nobody should have to suffer through this kind of nightmare just to install a gateway.



(and I tried posting in the forums yesterday, but my post never showed up - what gives?)

This is just a MESS…



I have signed up for the developer and merchant account and the app. ect. I have even created the app. And when trying to get back in it says that it does not know me…



I tell it to resend me my password and I get a temp password and it does not work. I am starting to wonder if this is even worth the time putting in to it.



Going to continue to try this. Just sucks that I have to sign up for several different things and they are all through Intuit. You would think since I already have a gopayment account with them I could just add the others.



We will see. I am going to have to call them to see what is going on.

Have been trying to create the connection at

here: http://merchantaccount.ptc.quickbooks.com/j/sdkconnection/connectionList?appid=MY APP ID.



Every time I go to this page I try to login and it just goes right back to the login page.

It never lets me log in. I have reset the password and it will reset it for me and still nothing.



So stuck at trying to create the connection.



Almost done with this and thinking of throwing in the towel…uggggg

Absolute CRAP. That anyone would have to even go through this.

I have jumped through all these fkn hoops and still end up at the same spot. Can not log into where I create the connection. just sends me in a loop. I have done all I can think of.



I call intuit and they tell me everything looks good. But when I tell them about this login problem at

login.ptc.quickbooks.com they tell me that they cant help me with that link but only help me with login.quickbooks.com



I with there was CLEAR step by step instructions on how to complete this.



I have tried to follow the https://idnforums.intuit.com/messageview.aspx?catid=3&threadid=7743



But can't understand stuff like this below?

IMPORTANT: When creating this certificate the Common Name (Your Name) needs to be EXACTLY your.url:your.application.name.



does this mean www.cutritefx.com:myapp.cutritefx.com?



Who knows.



I have also tried to follow the instructions on here too…

I AM MISSING SOMETHING.

[quote name='bofco' timestamp='1264691078' post='68551']





12. I registered my application with QBMS. I opened this link [ [url]http://merchantaccount.quickbooks.com/j/sdkconnection/connectionList?appid=109527395&serviceid=1002&appdata=MyAppData[/url] ] (be sure to put your App ID in where this one is listed).





[/quote]





Ok I am having trouble with this. I have completed all of these steps on my mac. Everything went fine.



When I go to

http://merchantaccount.quickbooks.com/j/sdkconnection/connectionList?appid=310523460&serviceid=1002&appdata=MyAppData



Note this now has my APPID and it asked me to log in



I entered my info and it seemed like the page just refreshed and did not let me in. I tried using a wrong password and it did tell me that it was wrong. When entering the correct password it would just send me back to the same page.



I ended up hitting change password and changed it and end up at the same thing.



I have tried this live and and test mode with no luck.







UPDATE+++++++++++++++

After doing some research found that the link to create the connection was incorrect

it should be

https://merchantaccount.quickbooks.com/j/sdkconnection?appid=APPID&sessionEnabled=false



This if for a production app. The one above is for testing an app from what I was reading.



When I entered this url I got



Connection Setup Complete

Congratulations!



You've successfully linked Intuit Processing to your merchant service account.



You can now start processing payments in Intuit Processing using your merchant service account.

Please log out.

How to I know this is working correctly now and linked.

I have confirmed the connection as now my Connection ticket: has some numbers in there.

I tried to check out using my own card and it said the payment processor has declined my payment. But my bank card is good.

When trying to process a credit card I keep getting this



“Your order has been declined by the payment processor. Please review your information and contact store administration”



I tried to call Intuit and they are useless. They can only tell me that everything is setup. As far as the connection they tell me that I would have to look through the forums.



Is this really worth it…