Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

PayPal Payflow Pro [New Version]


dynamoeffects

Recommended Posts

Hi there,

 

I am really sorry for the apparently "stupid" question but I am using PayPal WPP Pro, although it does still have some glitches which can affect the ability of some to complete their transactions.

 

Is PayPal Payflow Pro the same as PayPal WPP Pro or something entirely different?

 

Also does this work with UK based PayPal accounts?

 

Many thanks!!

 

Paul

You will never learn if you don't try. And boy am I trying....!

Link to comment
Share on other sites

Payflow Pro is a completely separate product from WPP. WPP is an all-in-one type of product whereas Payflow Pro is just a payment gateway and requires that you already have a merchant account setup. It was previously Verisign Payflow Pro before it was purchased by PayPal a couple of years ago.

 

This should work fine for UK merchants, though.

Please use the forums for support! I am happy to help you here, but I am unable to offer free technical support over instant messenger or e-mail.

Link to comment
Share on other sites

I tried this and I'm getting this error. Old version of payflow is working fine, but I gotta use the /bin and /certs file for the payflow modules. and they says they will not support it 2009 and discontinue so I'm trying this module and its not working. any help will be appreicilate.

 

errno: 2

errstr: Missing argument 5 for cc_validation::validate(), called in /home/www/includes/modules/payment/paypal_payflow_pro.php on line 115 and defined

errfile: /home/www/includes/classes/cc_validation.php

errline: 16

errcontext:

SERVER INFO: Array

(

[HTTP_HOST] => test.mydomain.com

[HTTP_USER_AGENT] => Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1

[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

[HTTP_ACCEPT_LANGUAGE] => en-us,en;q=0.5

[HTTP_ACCEPT_ENCODING] => gzip,deflate

[HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.7

[HTTP_KEEP_ALIVE] => 300

[HTTP_CONNECTION] => keep-alive

[HTTP_REFERER] => http://test.mydomain.com/checkout_confirmation.php

[HTTP_COOKIE] => __utmz=31074234.1213910578.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmz=172075839.1219774548.49.3.utmcsr=test.mydomain.com|utmccn=(referral)|utmc

md=referral|utmcct=/; __utma=31074234.337618847028810500.1213910578.1222295879.1222298046.185; bn_u=32575558; WT_FPC=id=24c5d458d2be5b9437d1213906977293:lv=1222295317484:ss=1222294446009; cookie_test=please_accept_for_session; __utma=172075839.2014671464289330700.1214000800.1221700877.1221772197.76; osCsid=2tg3jga5j72q7ad7ej2ku2h422; __utmc=31074234; __utmb=31074234.25.10.1222298046

[CONTENT_TYPE] => application/x-www-form-urlencoded

[CONTENT_LENGTH] => 0

[PATH] => /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin

[sERVER_SIGNATURE] => <address>Apache/2.0.52 (Red Hat) Server at test.mydomain.com Port 80</address>

 

[sERVER_SOFTWARE] => Apache/2.0.52 (Red Hat)

[sERVER_NAME] => test.mydomain.com

[sERVER_ADDR] => 192.168.1.212

[sERVER_PORT] => 80

[REMOTE_ADDR] => 74.7.61.2

[DOCUMENT_ROOT] => /home/www/

[sERVER_ADMIN] => root@localhost

[sCRIPT_FILENAME] => /home/www/checkout_process.php

[REMOTE_PORT] => 36960

[REMOTE_USER] => stage

[AUTH_TYPE] => Basic

[GATEWAY_INTERFACE] => CGI/1.1

[sERVER_PROTOCOL] => HTTP/1.1

[REQUEST_METHOD] => POST

[QUERY_STRING] =>

[REQUEST_URI] => /checkout_process.php

[sCRIPT_NAME] => /checkout_process.php

[php_SELF] => /checkout_process.php

[php_AUTH_USER] => pokgai

[php_AUTH_PW] => pokgai111

[REQUEST_TIME] => 1222298919

[argv] => Array

(

)

 

[argc] => 0

)

 

POST: Array

(

)

 

DEBUG BACKTRACE: Array

(

[0] => Array

(

[file] => /home/www/includes/classes/cc_validation.php

[line] => 16

[function] => mydomain_error_handler

[args] => Array

(

[0] => 2

[1] => Missing argument 5 for cc_validation::validate(), called in /home/www/includes/modules/payment/paypal_payflow_pro.php on line 115 and defined

[2] => /home/www/includes/classes/cc_validation.php

[3] => 16

[4] => Array

(

[number] =>

[expiry_m] =>

[expiry_y] =>

[phone_number] =>

)

 

)

 

)

 

[1] => Array

(

[file] => /home/www/includes/modules/payment/paypal_payflow_pro.php

[line] => 115

[function] => validate

[class] => cc_validation

[object] => cc_validation Object

(

[cc_type] =>

[cc_number] =>

[cc_expiry_month] =>

[cc_expiry_year] =>

[phone_number] =>

[cc_cvv] =>

)

 

[type] => ->

[args] => Array

(

[0] =>

[1] =>

[2] =>

)

 

)

 

[2] => Array

(

[file] => /home/www/includes/classes/payment.php

[line] => 170

[function] => before_process

[class] => paypal_payflow_pro

[object] => paypal_payflow_pro Object

(

 => paypal_payflow_pro

[title] => PayPal Payflow Pro

[description] => <center><b><h2>PayPal Payflow Pro for osCommerce 2.2MS2+</h2><i>Developed and maintained by:</i><br><a href="http://www.oscommerce.com/forums/index.php?showuser=80233">Brian Burton (dynamoeffects)</a></b></center>

[enabled] => 1

[public_title] => Secure Credit Card

[sort_order] => 0

)

 

[type] => ->

[args] => Array

(

)

 

)

 

[3] => Array

(

[file] => /home/www/checkout_process.php

[line] => 121

[function] => before_process

[class] => payment

[object] => payment Object

(

[modules] => Array

(

[0] => paypal_payflow_pro.php

)

 

[selected_module] => paypal_payflow_pro

)

 

[type] => ->

[args] => Array

(

)

 

)

 

)

Link to comment
Share on other sites

The problem is that you have a non-standard /includes/classes/cc_validation.php file that has five parameters instead of just three.

 

Grab a stock version of that file and put it in your store and see if that fixes the problem.

Please use the forums for support! I am happy to help you here, but I am unable to offer free technical support over instant messenger or e-mail.

Link to comment
Share on other sites

The problem is that you have a non-standard /includes/classes/cc_validation.php file that has five parameters instead of just three.

 

Grab a stock version of that file and put it in your store and see if that fixes the problem.

 

Thanks!! i'll try it out!! Will update.

Link to comment
Share on other sites

Thanks!! i'll try it out!! Will update.

 

This is my cc_validation.php

 

<?php

/*

$Id: cc_validation.php,v 1.3 2003/02/12 20:43:41 hpdl Exp $

 

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

 

Copyright © 2003 osCommerce

 

Released under the GNU General Public License */

 

class cc_validation {

var $cc_type, $cc_number, $cc_expiry_month, $cc_expiry_year, $phone_number , $cc_cvv;

 

function validate($number, $expiry_m, $expiry_y, $phone_number="" , $cc_cvv ) {

 

$this->cc_number = ereg_replace('[^0-9]', '', $number);

 

if (ereg('^4[0-9]{12}([0-9]{3})?$', $this->cc_number)) {

$this->cc_type = 'Visa';

}

elseif (ereg('^5[1-5][0-9]{14}$', $this->cc_number)) {

$this->cc_type = 'Master Card';

}

elseif (ereg('^3[47][0-9]{13}$', $this->cc_number)) {

$this->cc_type = 'American Express';

}

elseif (ereg('^3(0[0-5]|[68][0-9])[0-9]{11}$', $this->cc_number)) {

$this->cc_type = 'Diners Club';

}

elseif (ereg('^6011[0-9]{12}$', $this->cc_number)) {

$this->cc_type = 'Discover';

}

elseif (ereg('^(3[0-9]{4}|2131|1800)[0-9]{11}$', $this->cc_number)) {

$this->cc_type = 'JCB';

}

elseif (ereg('^5610[0-9]{12}$', $this->cc_number)) {

$this->cc_type = 'Australian BankCard';

}

 

else {

return -1;

}

 

if ( is_numeric($expiry_m) && ($expiry_m > 0) && ($expiry_m < 13) ) {

$this->cc_expiry_month = $expiry_m;

} else {

return -2;

}

 

if( strlen( $cc_cvv ) == 3 || strlen( $cc_cvv ) == 4 && is_numeric( $cc_cvv ) ){

$this->cc_cvv = $cc_cvv;

}

else{

return -6;

}

 

 

$current_year = date('Y');

$expiry_y = substr($current_year, 0, 2) . $expiry_y;

if (is_numeric($expiry_y) && ($expiry_y >= $current_year) && ($expiry_y <= ($current_year + 10))) {

$this->cc_expiry_year = $expiry_y;

} else {

return -3;

}

 

if ($expiry_y == $current_year) {

if ($expiry_m < date('n')) {

return -4;

}

}

 

$phone = str_replace("-", "", $phone_number);

 

if (strlen($phone)==10)

$this->phone_number = $phone;

else

return -5;

 

return $this->is_valid();

}

 

function is_valid() {

$cardNumber = strrev($this->cc_number);

 

$numSum = 0;

 

 

for ($i=0; $i<strlen($cardNumber); $i++) {

$currentNum = substr($cardNumber, $i, 1);

 

// Double every second digit

if ($i % 2 == 1) {

$currentNum *= 2;

}

 

// Add digits of 2-digit numbers together

if ($currentNum > 9) {

$firstNum = $currentNum % 10;

$secondNum = ($currentNum - $firstNum) / 10;

$currentNum = $firstNum + $secondNum;

}

 

$numSum += $currentNum;

}

 

// If the total has no remainder it's OK

return ($numSum % 10 == 0);

}

}

?>

 

 

Only differnet is i added the phone number for validation

 

anyway to fix this? without chaning the cc_validation.?

Link to comment
Share on other sites

Hi, I install the module on my current site, when I trying enter a wrong CC #, it doesn't really show me any message, it just go back to the CC enter page. So, what can be the problem?

thank you

ken

 

Ken wei,

 

I'm having the same issues, Test is working fine, but everything i set it to live mode, and test it with a real credit card, it always say that the credit card is invalid, please check your card . Can someone help me? I'm still using the OLD SDK which will expire sept 2009. Can someone help me?

 

I signed up with a new payflow and the login i use is

pilot-payflowpro.paypal.com = testing

payflowpro.paypal.com = live

Link to comment
Share on other sites

Thanks for the great contribution. The exact day I am having problems with the old Payflow Pro module, I see you have posted this new module. I installed and everything is working great, except one minor detail. When I test it with a bad credit card number, it sends me back to the checkout_payment.php WITHOUT ANY ERRORS. In the URL it says

 

.../checkout_payment.php?payment_error=paypal_payflow_pro&error=Your+transaction+was+declined.

 

But no errors are shown on the page. Also, the information, (bad credit card number), I typed in does not return either -- the fields are blank.

 

I am a PHP newbie, so I don't know where the problem is coming from. Please help.

 

Thank you!

Link to comment
Share on other sites

Hi Brian, I have downloaded and installed the latest version of this contribution. And I have a couple of issues.

 

1. Error messages just appear in the URL

2. The URL gives me an error and returns me back to the payment options screen, but the tranaction is approved and money changes hands. This happens in both test and Live scenarios.

 

checkout_payment.php?payment_error=paypal_payflow_pro&error=Your+billing+%28cvv2%29+information+does+not+match.+Please+re-enter.

Link to comment
Share on other sites

checkout_payment.php?payment_error=paypal_payflow_pro&error=Your+billing+%28cvv2%29+information+does+not+match.+Please+re-enter.

 

 

in PayPal_Payflow_pro.php line 278 I have changed

 

 $payment_error_return = 'payment_error=' . $this->code . '&error=' . urlencode(stripslashes(MODULE_PAYMENT_PAYPAL_PAYFLOW_PRO_TEXT_ERROR_BAD_RESPONSE
));

 

to

 

 $payment_error_return = 'error_message=' . $this->code . '&error=' . urlencode(stripslashes(MODULE_PAYMENT_PAYPAL_PAYFLOW_PRO_TEXT_ERROR_BAD_RESPONSE
));

 

 

similar change on line to 342.

 

This resolves the issue for me with regards to no error message.

Edited by pbcharlie
Link to comment
Share on other sites

I know have it installed and accepting payments.

 

Where I was going wrong, was the billing address and also it does not seem to accept live cards during test. The Live Cards during test were being processed but the cart was not seing that and displaying an error.

 

hope this helps.

Link to comment
Share on other sites

I have been using this module for about 1 week and have found a problem with Amex credit card processing.

 

American Express credit cards are being processed and CHARGED, but customer is being sent back to the checkout_payment.php screen with a credit card error and we are not receiving an order. This is resulting in customer trying to order multiple times, we receive the money multiple times, but customer does not know, and we don't know, since we never get an order in OSC.

 

I have had to refund all the AMEX transactions and remove the Amex logo, showing we only accept Visa and MC.

 

All Visa and MC transactions are working perfectly. I need some help to know what could be going wrong here, if it is not the module itself.

Link to comment
Share on other sites

Brian,

 

Here is some more information about the Amex problem.

 

This is actually more of a verification of cc information problem. It seems that the CVV2 field does not work for amex 4 digit confirmation numbers, the response in the PayPal Manager always shows an X meaning it is incorrect, this makes the module respond with an error and send back to the checkout_payment.php, and customer thinks it was denied, when actually it approved the charge.

 

When using any other credit card, if you have an incorrect zip code, the same thing happens-- makes the module respond with an error and send back to the checkout_payment.php, and customer thinks it was denied, when actually it approved the charge. (Note: The CVV2 field works with the 3 digit confirmation numbers with these cards, they do show up in PayPal Manager with a Y meaning they matched.)

 

I hope this helps figure out where the problem lies, and prove to be a quick fix. I've looked at the code and have no idea.

 

Thanks,

 

Rory

Link to comment
Share on other sites

I have uploaded a new version of the module that fixes the error message issue. pbcharlie's fix wasn't exactly right, but it was close.

 

However the AMEX issue is still a mystery. It works fine in the sandbox, so the live server could be sending back something unexpected. An "X" actually means that it didn't receive a response as to whether the CVV2 code is correct or not.

 

What I will need you to do is to open the paypal_payflow_pro.php file and find this line:

$result = strstr($result, "RESULT");

 

Right above that line, add this:

die($paypal_query . "\n\n" . $result);

 

Then test a transaction using an AMEX card with a 4-digit CVV2 code. You will get a page of output. What I need you to do is to confirm that all of the information being sent looks correct and send me the response that you receive, which is the bottom part.

Please use the forums for support! I am happy to help you here, but I am unable to offer free technical support over instant messenger or e-mail.

Link to comment
Share on other sites

I installed and made 2 live transactions. (I have a UK paypal merchant account)

 

Transaction1: provided a real mastercard number with right CVV2 but wrong name, address, post code, country.

Result1: Error message saying the postcode (zip) was bad. Hoever, the money was collected from the card and is listed in paypal history.

 

Transaction2: provided a real mastercard number with right CVV2 and right zip postcode but wrong name, address and country

Result2: Got to the "success" page but the transaction is not listed in the paypal history

 

 

 

3 bad things about this:

 

1) In case of Transaction1 the user would give his card again resulting in 2 payments

 

2) a criminal who stole the card number and CVV can basically type in any arbitrary name, zip, country and paypal would authorize the card?!

 

3) someone who completed a transaction would get a false positive result that all went well when actually paypal will not have taken money from his card

*Do not advertise in your signature

Link to comment
Share on other sites

Very strange, again I would have to see the transactions to know what's going on. If you can add the code I posted above to your module and then send me the transaction (minus any personal data), I would appreciate it.

Please use the forums for support! I am happy to help you here, but I am unable to offer free technical support over instant messenger or e-mail.

Link to comment
Share on other sites

Very strange, again I would have to see the transactions to know what's going on. If you can add the code I posted above to your module and then send me the transaction (minus any personal data), I would appreciate it.

USER[9]=secret1&VENDOR[9]=secret2&PARTNER[8]=PayPalUK&PWD[9]=secret3&TENDER[1]=C&TRXTYPE[1]=S&ACCT[16]=5473xxxxxxxxxx53&CVV2[3]=999&EXPDATE[4]=0111&FREIGHTAMT[4]=2.27&TAXAMT[4]=0.52&AMT[4]=3.49&CURRENCY[3]=GBP&FIRSTNAME[2]=Jo&LASTNAME[4]=Blow&STREET[12]=12 my street&CITY[6]=Slough&STATE[0]=&ZIP[6]=w3 e89&COUNTRY[3]=GBR&SHIPTOFIRSTNAME[2]=Jo&SHIPTOLASTNAME[4]=Blow&SHIPTOSTREET[12]=12 my street&SHIPTOCITY[6]=Slough&SHIPTOSTATE[0]=&SHIPTOZIP[6]=w3 e89&EMAIL[20][email protected]&CUSTIP[13]=82.155.211.76&COMMENT1[0]=&INVNUM[0]=&ORDERDESC[0]=&VERBOSITY[6]=MEDIUM HTTP/1.1 200 OK Connection: close Server: VPS-3.033.00 Date: Fri, 17 Oct 2008 12:12:54 GMT Content-type: text/namevalue Content-length: 171 RESULT=0&PNREF=EUJP2ED45F59&RESPMSG=Approved&AUTHCODE=111111&AVSADDR=N&AVSZIP=N&CVV2MATCH=Y&PPREF=2L3394479U647950P&CORRELATIONID=eb817159e5631&PROCAVS=N&PROCCVV2=M&IAVS=N

 

 

the transaction went through and is listed on paypal history.

the postcode, country, and name are all wrong (Jo Blow from 12 my street in Slough UK).

I would expect this transaction to fail!

Edited by ls129

*Do not advertise in your signature

Link to comment
Share on other sites

Hi Brian,

 

I would really love to have this thing working because i'm at my wits end with the 10001 errors i've started getting recently with the paypal API 2.0 interface (i posted about this in your paypal pro uk contribution thread)

 

 

I looked at your code a bit and had some questions/comments:

 

1) is is possible to add the INVNUM in the request? it would help a lot in tax reports to have the oscommerce transaction id as the invoice number recorded with paypal history logs.

 

2) what is this mystery variable $fraud ? where is it set ?

 

3) why do you copy the credit-card number and details in $order ? where does this information end up and is that secure ?

 

4) can all the returned codes be stored in the transaction history so that I can later cancel the transaction if it was "approved" although none of the fields match ?

 

thanks for your great contributions!

*Do not advertise in your signature

Link to comment
Share on other sites

The response from PayPal was that it was approved, which means the module is working exactly as it should. That is it's not misunderstanding a "Failure" response.

 

I would suggest going into your PayPal account and modifying the risk controls. That will allow you to instruct the module to reject certain transactions if specific information is missing or incorrect.

Please use the forums for support! I am happy to help you here, but I am unable to offer free technical support over instant messenger or e-mail.

Link to comment
Share on other sites

I am having the same problem. When logging into the PayPal Manager for Payflow pro, I dont see anything about risk controls besides:

Maximum Amount per Transaction:

Maximum Amount for Credits:

Allow Non-referenced Credits: Yes No

Credits may exceed original transaction amount: Yes No

Allow reference transactions: Yes No

 

and that is under manage security.

 

Please advise

Link to comment
Share on other sites

There doesn't seem to be Risk-Controls or Fraud-Management-Filters in my account!

see this link for paypal's dubious for-a-fee risk control merchant tools:

http://www.paypaldeveloper.com/pdn/board/m...;thread.id=7277

 

Found a small error in the module.. the following string doesnt exist in the english strings file:

MODULE_PAYMENT_PAYPAL_PAYFLOW_PRO_TEXT_ERROR_INCORRECT_BILLING_STREET

 

Also, there should be a way to choose between TRXTYPE = S or A due to the over permissive payflow gateway (without the risk-control policy option etc.). this way the card can be authorized pending manual approval.

*Do not advertise in your signature

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