Question

I am trying to integrate payflow pro with an existing website.

There is no SDK for PHP, and integration with PHP will require the use of the Payflow HTTPS interface. The dev guide (https://cms.paypal.com/cms_content/AU/en_AU/files/developer/PP_WPPPF_HTTPSInterface_Guide.pdf) says that I will need to write code that creates an HTTPS connection to the Paypal servers. What method should I use to do this, and how can I submit HTTPS requests once a connection has been established?

Was it helpful?

Solution 2

I was finally able to find an example here: https://ppmts.custhelp.com/app/answers/detail/a_id/618

<?
$submiturl = "https://pilot-payflowpro.paypal.com/transaction:443/";

$plist="USER=****&VENDOR=****&PARTNER=****&PWD=****&TENDER=C&" .
        "TRXTYPE=A&ACCT=5105105105105100&" .
        "EXPDATE=1209&STREET= 123 MainSt.&CVV2=123&AMT=1.00";

$request_id = date('YmdGis');
$user_agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";

// Here's your custom headers; adjust appropriately for your setup:
$headers[] = "Content-Type: text/namevalue";    // either text/namevalue or text/xml
$headers[] = "X-VPS-Timeout: 30";
$headers[] = "X-VPS-VIT-OS-Name: Linux";        // Name of your Operating System (OS)
$headers[] = "X-VPS-VIT-OS-Version: RHEL 4";    // OS Version
$headers[] = "X-VPS-VIT-Client-Type: PHP/cURL"; // Language you are using
$headers[] = "X-VPS-VIT-Client-Version: 0.01";  // For your info
$headers[] = "X-VPS-VIT-Client-Architecture: x86";  // For your info
$headers[] = "X-VPS-VIT-Integration-Product: MyApplication";  // For your info,  application name
$headers[] = "X-VPS-VIT-Integration-Version: 0.01"; // Application version
$headers[] = "X-VPS-Request-ID: " . $request_id;

$user_agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $submiturl);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_HEADER, 1); // tells curl to include headers in response
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // return into a variable
curl_setopt($ch, CURLOPT_TIMEOUT, 45); // times out after 45 secs
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // this line makes it work under https
curl_setopt($ch, CURLOPT_POSTFIELDS, $plist); //adding POST data
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,  2); //verifies ssl certificate
curl_setopt($ch, CURLOPT_FORBID_REUSE, TRUE); //forces closure of connection when done
curl_setopt($ch, CURLOPT_POST, 1); //data sent as POST

// $info = curl_getinfo($ch); //grabbing details of curl connection

$result = curl_exec($ch);
$headers = curl_getinfo($ch);
curl_close($ch);
echo $result;
?> 

OTHER TIPS

Just use any regular method of issuing HTTP requests, e.g. curl or file_get_contents. If the underlying transport layer supports SSL secured connections, making requests to an https://... URL will make SSL secured connections; otherwise the transport layer will fail saying it can't establish HTTPS connections.

You have three options:

1) You can use the OSCommerce PHP PayFlow SDK as a starting point if you're feeling adventurous: https://www.x.com/sites/default/files/OsC23PayPalPayFlow.zip

2) You can read through the dev guide for payflow and make your own handcrafted API calls: https://cms.paypal.com/cms_content/US/en_US/files/developer/PP_PayflowPro_Guide.pdf

3) You can give the Integration Wizard a whirl. I will autogenerate code for you: https://www.paypal-labs.com/integrationwizardccpayflow/main.php

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top