Home
 

Customer Support

Search for keywords:

Browse by category:

The pfpro pfpro_process() function keeps giving me Error 31

The Pfpro User Annotations mention that a cert path error occurs if pfpro cannot find a payflow certificate and that this can be resolved by supplying an environmental variable that sets the cert path. Since the payflow certificate that pfpro is looking for is located at:
/usr/share/ssl/certs/f73e89fd.0
you can set that path in your script's environment like so:
putenv("PFPRO_CERT_PATH=/usr/share/ssl/certs");
Another option is to create your own "certs" directory under the directory where your pfpro code is located (for example htdocs/www/certs/) and copy the f73e89fd.0 cert file above in there so that pfpro will find it.

The f73e89fd.0 cert file is included with the Verisign SDK which is available after you login to https://manager.verisign.com (assuming you are a Payflow client) and clicking the "Downloads" navigation link. Also available from their Downloads area is the Payflow Developers Guide.

Page 11 of the Guide says:
Setting the Certificate Path
For the client to authenticate the VeriSign Payment Services server, the PFPRO_CERT_PATH environment variable must point to the certs directory (included in the SDK that you downloaded). For specific information on setting PFPRO_CERT_PATH, see the Readme file and example applications in the SDK that you downloaded.
The cert file f73e89fd.0 is located in the "certs" subdirectory of the SDK.

User-Contributed Notes

add a note
28-Mar-2003 11:07
This error also happened when the PHP file was corrupted with CNTRL+M
characters due to uploading it with FTP in binary instead of ascii mode
or saving the file with "Windows" line endings instead of "Unix" format.


Open the file on the server in an editor at a shell prompt and edit it
with pico, ex, or vi and you will see the CNTRL+M characters. If you see
them, try running the "dos2unix" program on the file from your shell
prompt:

   dos2unix /htdocs/www/certs/f73e89fd.0

If that does not fix it, delete the file and start over.

06-Jan-2004 14:52
If yo cannot get your script to find the system copy of the payflow cert
by following the FAQ above, then just create a directory named "certs" 1
level below your payflow script and copy the 1 required payflow cert
into it.

The system copy of the cert is at /usr/share/ssl/certs/f73e89fd.0

For example, if the parent script (the one that calls all other scripts
by include()'s or require()'s) that does Payflow transactions is at 

    /htdocs/www/myapp/charge_card.php

then you should do this at a shell prompt:

      mkdir /htdocs/www/myapp/certs
      cd /htdocs/www/myapp/certs
      cp /usr/share/ssl/certs/f73e89fd.0 .

and your charge_card script will automatically find the cert. This is
because by default, the Payflow functions always look for the cert in
"./certs" if they can't find it anywhere else.

If you have many scripts in various directories that do transactions,
make the cert dir available to them with a symlink.

For a parent script at /htdocs/www/otherapp/subdir/script.php

Do this at a shell prompt:

   cd /htdocs/www/otherapp/subdir
   ln -s ../../myapp/certs certs

and then /htdocs/www/otherapp/subdir/certs will ead to the same place as
/htdocs/www/myapp/certs




anonymous -at- example.com
22-Nov-2005 16:41
For Miva with Payflow, you'll want to:

cd /htdocs/www/store/
ln -s /usr/share/ssl/certs/ certs

add a note

Related Questions:


How do I set PHP include_path?

What PHP modules are available and how do I load them?

How do I change timezone for PHP?

How do I do html form file uploads?

Can I run a PHP script on cron?

Why does a PHP function give an error that it is undefined?

Why does PHP HTTP authentication not work?

Can you change session cookie timeout in php.ini for me?

Why does my PHP script throw an Internal Server Error 500?

I can't upload a file larger than 8MB through a PHP script

What version of PHP are you running and can I see a phpinfo()?

Do you have a quick form mail script?

Do you offer PHP5 with MySQLi?

Can I use a PHP extension like PDFlib that I have personally purchased a license to use?

Can I have all .html pages parsed as PHP?

What's the difference between running PHP as a cgi or as a module in safe mode?

Do you provide PEAR?

The PHP curl module doesn't work.

Where is the php_error_log?

My PHP session is lost whenever I go to a secure URL using the shared SSL certificate.

Where can I download free PHP scripts?

Do I need to set any 777 permissions in order for my PHP scripts to create files and directories?

How do I get different character sets within my PHP page to display correctly?

Can I use Smarty Templates?

The PDFlib extension gives a UPR description error.

How do I execute my .php files as PHP 5?

How do I use the url_rewriter.tags setting for PHP?

Why does flush() not flush the data to my browser?

Why does PHPLIB sessions give me a MySQL Database error?

Will my Zend Encoded files work?

Will IonCube encoded files work?

What is CAPTCHA? How can I use it?

I need the virtual() function and it is not available.

Why does getallheaders() say undefined function?

Can I talk over SSL when opening an IMAP connection with the PHP imap_open() function?

My PHP script needs a newer version of Zend Optimizer. What do I do?

How can one PHP file transparently handle all search-engine friendly URLs?

How do I put PHP sessions into a database instead of the default files-based method?

Browse Categories:

Getting Started, FTP, Telnet/SSH, Moving Domains, E-mail, Traffic Reports, Mailing Lists, Apache, PHP, CGI, Other Server-Side Scripting, MySQL Database, Imaging Libraries, Other Software, Billing & Terms, Control Panel, E-commerce, Pre-Sales


Tiny Modwest Logo         Copyright 2000-2008 by Modwest, Inc.          About Us    |    Blog    |    Jobs    |    Web Design    |    Contact Us