Hi,

I'm trying to get payflow pro working on my server (unfortunately a client
took it upon themselves to get their gateway).

I am on a freebsd box and I am having all sorts of problems getting this
working. Either as an extension (pfpro.so) or just exec() externally.

I've read that Verisign stopped distributing a FreeBSD of their SDK... which
seems true since it is not offered on their site. So... first I downloaded
the BSDi SDK. I thought I might be able to hack it up a bit... no such luck,
as a module or just scripting to it.

So, if all else fails go for the linux dist.
I downloaded, gunziped, and proceeded to make a php extension.
./configure --with-pfpro=shared,/usr/local/verisign/payflowpro/linux

Compiles fine... creates pfpro.so. I copy pfpro.so and libpfpro.so (which
came with the SDK) to /usr/local/lib (this is the lib directory my ini file
points to, which is where my other extensions are). i copy pfpro.h to
usr/local/include.
i add the following to my php script
dl('pfpro.so');

It won't load... I get a error stating it cannot find libc.so.6. So I copy
over the lib from the linux compat files to /usr/lib (not usr/local/lib).
Refresh... apparently it found that, as it is now cannot locate
ld-linux.so.2 (i think). Again, I copy this from the compat to /usr/lib. I
am expecting an error, but it tells me it still cannot locate it. I do a
bunch of steps probably unneccessary just to try everything. I copied this
to my /usr/local/lib, i run ldconfig, i do a bunch of stuff to no avail.

Can anyone give me some insight on setting payflow pro up on freebsd as a
php module?

Now, I know it "can" work. I dropped to my shell, ran
..../linux/bin/test.sh. Works... i run ./pfpro as is and it can't find
libraries (the test.sh script defines their location). So, I decide I'll try
to hack up something exec(pfpro)'ing from the script, despite i am no good
at this. i found a snipet of code in the anotated php manual. I could not
get it to work. I even exec() the same code that defines the libs in the
shell script (test.sh) before exec() the pfpro call.

the code is:
function pfpro_shell($arFields) {
     $signio_cmd = "/usr/local/verisign/payflowpro/linux/bin/pfpro
test-payflow.verisign.com 443\"";
     foreach($arFields as $key=>$val) $signio_cmd .= $key . "=".
urlencode($val) . "&";
     $signio_cmd .= "\"";
     $signio_result = exec($signio_cmd);
     parse_str($signio_result,$arResult);
     if (!isset($arResult["RESULT"])) die ("Exec command
     failed to return proper result");
     return($arResult);
}

I pass the following array just to test it....
$transaction = array(USER => 'mylogin', PWD => 'mypassword', TRXTYPE => 'S',
TENDER => 'C', AMT => 1.50, ACCT => '4111111111111111', EXPDATE => '0904');

pfpro_shell($transaction);

It just dies with the error message everytime (Exec command failed to return
proper result). It does not pass anything back ($arResult is empty).

If I could get the entension working, that would be ideal, but a work around
through some shell scripting would suffice. I am not willing to recompile
apache again  right now, so a static --with-pfpro is not an option.

Thanks in advance.

Reply via email to