Создание HTTPS-соединения с сервером Paypal с помощью PHP 5
Я пытаюсь интегрировать Payflow Pro с существующим веб-сайтом.
SDK для PHP отсутствует, а для интеграции с PHP потребуется использование интерфейса Payflow HTTPS. Руководство разработчика (https://cms.paypal.com/cms_content/AU/en_AU/files/developer/PP_WPPPF_HTTPSInterface_Guide.pdf) говорит, что мне нужно будет написать код, который создает HTTPS-соединение с серверами Paypal. Какой метод я должен использовать, чтобы сделать это, и как я могу отправить HTTPS-запросы после установления соединения?
3 ответа
Я наконец смог найти пример здесь: 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;
?>
Просто используйте любой обычный метод выдачи HTTP-запросов, например, curl или file_get_contents
, Если нижележащий транспортный уровень поддерживает защищенные соединения SSL, отправка запросов https://...
URL создаст защищенные соединения SSL; в противном случае транспортный уровень потерпит неудачу, заявив, что не может установить HTTPS-соединения.
У вас есть три варианта:
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