使用PHP 5创建与Paypal服务器的HTTPS连接

时间:2012-10-18 17:42:34

标签: php https http-headers payflowpro

我正在尝试将payflow pro与现有网站集成。

没有适用于PHP的SDK,与PHP的集成需要使用Payflow HTTPS接口。开发指南(https://cms.paypal.com/cms_content/AU/en_AU/files/developer/PP_WPPPF_HTTPSInterface_Guide.pdf)说我需要编写代码来创建与Paypal服务器的HTTPS连接。我应该使用什么方法来执行此操作,以及如何在建立连接后提交HTTPS请求?

3 个答案:

答案 0 :(得分:1)

只需使用任何常规方法发出HTTP请求,例如卷曲或file_get_contents。如果底层传输层支持SSL安全连接,则向https://... URL发出请求将使SSL安全连接;否则传输层将失败,说它无法建立HTTPS连接。

答案 1 :(得分:1)

我终于能够在这里找到一个例子: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;
?> 

答案 2 :(得分:0)

您有三种选择:

1)如果您有冒险精神,可以使用OSCommerce PHP PayFlow SDK作为起点:https://www.x.com/sites/default/files/OsC23PayPalPayFlow.zip

2)您可以阅读开发指南了解付费流程并制作您自己的手工API调用: https://cms.paypal.com/cms_content/US/en_US/files/developer/PP_PayflowPro_Guide.pdf

3)你可以给整合向导一个旋转。我会为您自动生成代码:https://www.paypal-labs.com/integrationwizardccpayflow/main.php