Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Paymentech contribution


Enrico

Recommended Posts

  • 4 weeks later...

 

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?

Link to comment
Share on other sites

  • 4 months later...

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

Link to comment
Share on other sites

  • 2 months later...

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.

Link to comment
Share on other sites

  • 1 month later...

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.

Link to comment
Share on other sites

  • 1 month later...
  • 3 weeks later...
  • 1 month later...
  • 2 weeks later...

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 by OSCommerceSurgeon

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

Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

  • 1 month later...

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 !!

Link to comment
Share on other sites

  • 2 months later...

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

Link to comment
Share on other sites

  • 6 months later...
  • 7 months later...

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

Link to comment
Share on other sites

  • 4 months later...

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

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...