Enrico Posted April 11, 2005 Posted April 11, 2005 Has anyone had success getting the contribution to work?? Quote
Guest Posted April 18, 2005 Posted April 18, 2005 See this thread http://www.oscommerce.com/forums/index.php?sho...2&hl=paymentech Quote
[email protected] Posted May 17, 2005 Posted May 17, 2005 See this thread http://www.oscommerce.com/forums/index.php?sho...2&hl=paymentech <{POST_SNAPBACK}> We had minixml 1.3.0 installed and received the error regarding line 337 (see snippet below) - we then rolled back to 1.2.6 and still get the same error. Line 337 reads: if ($procstatus->getValue() === '0') { any ideas? Quote
kitchenbitch Posted September 19, 2005 Posted September 19, 2005 Getting things to work with Paymentech/Orbital is a bit challenging, but if it helps, here's some information, along with a couple of fixes, that I can pass along: 1. Paymentech has TWO environments: Test and Production. Each has to have a unique Merchant ID associated with it in order for things to be set up on their end correctly. Meaning, if you've selected Test mode through the OSC Admin and you pass Paymentech your Production Merchant ID, it won't work. 2. The Paymentech environments do not talk to each other. If you've got the OSC switch set to run in Test mode, you'll be sending data to their Test server. If you've got the OSC switch set to run in Production mode, you'll be sending data to their Production server. Each server needs to have your shopping cart's IP addresses loaded on it. If they're not, you'll bomb out with a 20412 error ("Precondition Failed: Security Information is missing"). The only way to get your IP addresses loaded on each server is to call the Orbital 800 number. [FYI: Once the IP addresses have been added, you need to wait about an hour before you sending a sale through.] 3. Make sure that you've got the correct merchant information in the correct field in the OSC Admin. Paymentech sends their Orbital customers a document showing their "Group" number and "Merchant Number". The "Merchant Number" is the "Bank Merchant Number" or "Visa/Mastercard Merchant Number". Meaning, if there's ever a question about a sale and someone calls on it, the "Merchant Number" would come into play. For sending data to the Paymentech Test and Production environments, the GROUP number needs to be sent. If the Group number is NOT sent, Paymentech will return a "9717 Security Information - agent/chain/merchant is missing" error and you'll be scratching your head thinking, "But I SENT the Merchant ID! What else could be missing?!!" Also, the "Paymentech Trace ID" field shown on the OSC Admin is actually the Paymentech "Terminal ID". "Terminal ID" doesn't seem to be included in any of the initial documents sent by Paymentech, but a quick call to their 800 number should provide that. If the wrong "Terminal ID" is sent, Paymentech will return a "523 An invalid TID was received (xxx)" (where xxx is the ID that was entered in the "Payment Trace ID" field through the OSC Admin. Lastly, double-check everything. This seems obvious, but when you're trying to get a new module working and the pressure is on, it's easy to overlook stuff like this. 4. FIX: In the process of adding taxes (and other percentile amounts) to the order's total amount, OSC keeps everything as a float data type. Even though paymentech.php was coded things to multiply the total by 100 to eliminate decimal positions (which are not allowed on the authorizations), the total remains a float. Meaning, there are still decimal positions! This will cause the auth to fail with an "801 Error validating amount. Must be numerical and greater than 0 [xxxx.xxxx]" (where xxxx.xxxx is the total amount that was actually sent to Paymentech. I don't know if there's a specific setting in OSC's Admin to limit the number of decimal positions, but this will take care of things regardless: Old Line: tep_draw_hidden_field('my_totalamount', ($order->info['total'])*100) . New Line: tep_draw_hidden_field('my_totalamount', round(($order->info['total'] * 100), 0)) . 5. FIX: In tracing through the Line 337 error ("Fatal error: Call to a member function on a non-object in ... paymentech.php on line 337"), I discovered that line 337 was bombing because the $procstatus object was never created two lines earlier. No $procstatus object = No $procstatus value = BOOM! So, I contacted Wheat explaining what I had found and he sent me brand new versions of the following classes: doc.inc.php element.inc.php node.inc.php treecomp.inc.php New versions located here listed as "Ver2 Update": http://www.oscommerce.com/community/contri...ns,1998/page,15 These worked like a charm with no further code changes needed oni my part! Big kudos to Wheat also for answering my cry for help as quickly as he did! Hope this helps! Paul Quote
user435 Posted November 30, 2005 Posted November 30, 2005 I'm at the point where I need to install a gateway for these CC transactions. I'm thinking of using paymentech, however from the search that I've done and the little information that I've found, paymentech's orbital gateway is either easy to setup (with the info above) or an absolute nightmare. I would really like to talk with someone that is currently using paymentech for there online store before I dive into this. In addition, if you have the experience that would suggest a better means, please reply. Thanks. Quote
mkmaurya Posted January 6, 2006 Posted January 6, 2006 Hi kitchenbitch, I am facing the same issue which you have described below: 2. The Paymentech environments do not talk to each other. If you've got the OSC switch set to run in Test mode, you'll be sending data to their Test server. If you've got the OSC switch set to run in Production mode, you'll be sending data to their Production server. Each server needs to have your shopping cart's IP addresses loaded on it. If they're not, you'll bomb out with a 20412 error ("Precondition Failed: Security Information is missing"). The only way to get your IP addresses loaded on each server is to call the Orbital 800 number. [FYI: Once the IP addresses have been added, you need to wait about an hour before you sending a sale through.] If you can please tell me how to call this Orbital 800 number and get rid of this warning. Should I need to add some extra code or to do some extra setting. Also my OSC Admin is not having the Test mode / Production mode option, which you are talking about in your statement. Eagerly waiting for your response. Thanks, Manoj. Quote
ozEworks Posted February 8, 2006 Posted February 8, 2006 We still get the 337 error even though we applied the patch. Anyone have any ideas? Also it gives a choice of Tampa or Salem and our client has told us "Nashville" network. This a new one? How do we handle that? Quote
wordx Posted March 3, 2006 Posted March 3, 2006 okay we fixed one - but Nashville? How did you fix the 337 error? Quote
flying_kites Posted April 19, 2006 Posted April 19, 2006 Hi Sorry about the slow response. My account seemed to have gotten messed up somehow. I have been suspended until 1970! :) Ask a member here called Kit. He is my team leader and may recall what he did. regards Kym Quote
OSCommerceSurgeon Posted April 27, 2006 Posted April 27, 2006 (edited) I downloaded and installed the paymentech contribution. Then I applied the fixes as described above, super. It got rid of the decimal issue. The module was still broken, no matter what I did it always sent back the error code of: "20412:Presecurity condition not met" After ignorning the documentation I decided to modify the headers and how CURL was sending the request to their server. I dont know if my fix is universal or not, or if it is because I am using Firefox and sending from a shared certificate SSL windows server. In the beforeprocess(); after the curl_init and before the curl_exec, function you will notice this block of code: // curl_setopt($ch, CURLOPT_VERBOSE, 1); // comment once in production if(!curl_setopt($ch, CURLOPT_URL, GATEWAY_URL)) {echo 'CURLOPT URL Error<p>';} if(!curl_setopt($ch, CURLOPT_HEADER, 1)) {echo 'CURLOPT Header Error<p>';} if(!curl_setopt($ch, CURLOPT_HTTPHEADER, array('POST /AUTHORIZE HTTP/1.0', 'MIME-Version: 1.0', 'Content-type: application/PTI21', 'Content-transfer-encoding: text', 'Request-number: 1', 'Document-type: Request'))) {echo 'CURLOPT HTTPHEADER Error<p>';} if(!curl_setopt($ch, CURLOPT_POST, 1)) {echo 'CURLOPT POST Error<p>';} if(!curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlRequest)) {echo 'CURLOPT POSTFIELDS Error<p>';} if(!curl_setopt($ch, CURLOPT_TIMEOUT, 90)) {echo 'CURLOPT TIMEOUT Error<p>';} curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // gives error, but keeps xml formatting That is the one that was causing me extreme hurt. If you are receiving the error that I was without anywhere else to turn and gave up on the documentation then change it to this: if(!curl_setopt($ch, CURLOPT_URL, GATEWAY_URL)) {echo 'CURLOPT URL Error<p>';} curl_setopt($ch, CURLOPT_HTTPHEADER, array('MIME-Version: 1.0','Content-transfer-encoding: text','Document-type: Request','Content-type: application/PTI34')); if(!curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlRequest)) {echo 'CURLOPT POSTFIELDS Error<p>';} curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // gives error, but keeps xml formatting curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); It worked for me and it only took 3 days to hack it out... wahoooo Edited April 27, 2006 by OSCommerceSurgeon Quote While I'm operating on OSCommerce, I don't have to worry about silly vitals or forgetting to turn off the ane..the.. no wait I remember aes....thetic, or right I've got it Anaesthetic
OSCommerceSurgeon Posted April 27, 2006 Posted April 27, 2006 I've read through all the documentation I could find on their site and as far as I understand their system there is no Nashville. 000001 = Salem 000002 = Tampa (default) But that doesnt mean anything as I have found. If your client insists that they should be submitting to Nashville then you have to find the numerical representation for Nashville. In the actual XML submission the BIN is represented as a number: 000001 or 000002 If you want to change the BIN to where it is getting submitted to, the quick and easy way. Edit your paymentech.php file. Look for this line: $BIN->text(MODULE_PAYMENT_PAYMENTECH_BIN); Change it to: $BIN->text('000003'); Or whatever numerical representation Nashville is, because I havent seen that BIN anywhere. hope that helps Quote While I'm operating on OSCommerce, I don't have to worry about silly vitals or forgetting to turn off the ane..the.. no wait I remember aes....thetic, or right I've got it Anaesthetic
thakhin Posted June 6, 2006 Posted June 6, 2006 I installed the Paymentech Orbital Gateway module ver 2 as instructed. ( cURL library function installed http://curl.haxx.se) ( miniXML php package installed as instructed - Ver2 - Update) and I called Paymentech Gateway Support and got back as follow Primary URL: https://orbitalvar1.paymentech.net Secondary URL: https://orbitalvar2.paymentech.net BIN: 000002, MID: #######, TID: 001 Then, all are configured thru OScommerce Admin and test this paymenttech Gateway module through my shopping cart system with the following data Name ABC Visa 4012888888881 Any expiration date Credit Card Verification Number: 234 Whatever I put in the form field (Credit Card Verification) is received the same error message as follow Credit Card Error! Other fields are look like working well. Has anyone gotten this error yet? Any ideas will be appreciated !! Quote
Guest Posted August 15, 2006 Posted August 15, 2006 First, Thanks so much for this contribution, Wheat! Thanks also for the explanation below, Paul! I am not a programmer, but a hack and so far have been able to make things work. I have a question for you, Paul about the Fix, Item 4. below... Is this rounding to the nearest unit ($) because of the zero "0" or the 100th (penny)? If it is rounding to the dollar and I use a two (2) instead of the zero (0), can I get it to round to a penny? Thanks in advance, Tom Getting things to work with Paymentech/Orbital is a bit challenging, but if it helps, here's some information, along with a couple of fixes, that I can pass along: 1. Paymentech has TWO environments: Test and Production. Each has to have a unique Merchant ID associated with it in order for things to be set up on their end correctly. Meaning, if you've selected Test mode through the OSC Admin and you pass Paymentech your Production Merchant ID, it won't work. 2. The Paymentech environments do not talk to each other. If you've got the OSC switch set to run in Test mode, you'll be sending data to their Test server. If you've got the OSC switch set to run in Production mode, you'll be sending data to their Production server. Each server needs to have your shopping cart's IP addresses loaded on it. If they're not, you'll bomb out with a 20412 error ("Precondition Failed: Security Information is missing"). The only way to get your IP addresses loaded on each server is to call the Orbital 800 number. [FYI: Once the IP addresses have been added, you need to wait about an hour before you sending a sale through.] 3. Make sure that you've got the correct merchant information in the correct field in the OSC Admin. Paymentech sends their Orbital customers a document showing their "Group" number and "Merchant Number". The "Merchant Number" is the "Bank Merchant Number" or "Visa/Mastercard Merchant Number". Meaning, if there's ever a question about a sale and someone calls on it, the "Merchant Number" would come into play. For sending data to the Paymentech Test and Production environments, the GROUP number needs to be sent. If the Group number is NOT sent, Paymentech will return a "9717 Security Information - agent/chain/merchant is missing" error and you'll be scratching your head thinking, "But I SENT the Merchant ID! What else could be missing?!!" Also, the "Paymentech Trace ID" field shown on the OSC Admin is actually the Paymentech "Terminal ID". "Terminal ID" doesn't seem to be included in any of the initial documents sent by Paymentech, but a quick call to their 800 number should provide that. If the wrong "Terminal ID" is sent, Paymentech will return a "523 An invalid TID was received (xxx)" (where xxx is the ID that was entered in the "Payment Trace ID" field through the OSC Admin. Lastly, double-check everything. This seems obvious, but when you're trying to get a new module working and the pressure is on, it's easy to overlook stuff like this. 4. FIX: In the process of adding taxes (and other percentile amounts) to the order's total amount, OSC keeps everything as a float data type. Even though paymentech.php was coded things to multiply the total by 100 to eliminate decimal positions (which are not allowed on the authorizations), the total remains a float. Meaning, there are still decimal positions! This will cause the auth to fail with an "801 Error validating amount. Must be numerical and greater than 0 [xxxx.xxxx]" (where xxxx.xxxx is the total amount that was actually sent to Paymentech. I don't know if there's a specific setting in OSC's Admin to limit the number of decimal positions, but this will take care of things regardless: Old Line: tep_draw_hidden_field('my_totalamount', ($order->info['total'])*100) . New Line: tep_draw_hidden_field('my_totalamount', round(($order->info['total'] * 100), 0)) . 5. FIX: In tracing through the Line 337 error ("Fatal error: Call to a member function on a non-object in ... paymentech.php on line 337"), I discovered that line 337 was bombing because the $procstatus object was never created two lines earlier. No $procstatus object = No $procstatus value = BOOM! So, I contacted Wheat explaining what I had found and he sent me brand new versions of the following classes: doc.inc.php element.inc.php node.inc.php treecomp.inc.php New versions located here listed as "Ver2 Update": http://www.oscommerce.com/community/contri...ns,1998/page,15 These worked like a charm with no further code changes needed oni my part! Big kudos to Wheat also for answering my cry for help as quickly as he did! Hope this helps! Paul Quote
gooflox Posted February 17, 2007 Posted February 17, 2007 I have tried all the suggestions and contributions (ver2 & Ver2 Update) and am still getting the 337 error. What am I missing? Any further insight would be great!! Quote
arya Posted October 15, 2007 Posted October 15, 2007 Hi, I have configured exactly as brifed, also send my Server IP address to the Orbital and they add it. But i still got Page Can not be displayed error. My Server is CURL enabled. I doubled checked that before sending request to the Paymentech Server everything is fine. But i can't get any response from them and i don't think that CURL is a problem. As i checked it and it's enabled in my server. Any help will be appriciated !!! arya Quote
haritha Posted February 18, 2008 Posted February 18, 2008 Hi All, Could any one provide me information as to how I could affiliate an ip address with the paymentech Orbital gateway. I couldn't find much information on the Paymentech site. I have read in the Paymentech COM SDK Documentation that the Orbital Gateway uses source IP authentication to authenticate the request generation. So I need to raise a request to the paymentech support. Please let me know the number where I could contact Paymentech support or where I could raise a request online. Any help would be highly appreciated. Thanks Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.