Sandbox Payflow Gateway API调用超时

时间:2018-01-04 09:56:38

标签: paypal paypal-sandbox

我已按照指南for Payflow hosted pages尝试了demo (.zip file)所有内容正在处理前几个cURL请求。现在,端点https://pilot-payflowpro.paypal.com始终返回超时:

Failed to connect to port 80: Connection timed out

这是抛出此错误的代码:

// run_payflow_call: Runs a Payflow API call.  $params is an associative array of
// Payflow API parameters.  Returns FALSE on failure, or an associative array of response
// parameters on success.
function run_payflow_call($params) {
  global $environment;

  $paramList = array();
  foreach($params as $index => $value) {
    $paramList[] = $index . "[" . strlen($value) . "]=" . $value;
  }

  $apiStr = implode("&", $paramList);

  // Which endpoint will we be using?
  if($environment == "pilot" || $environment == "sandbox")
    $endpoint = "https://pilot-payflowpro.paypal.com/";
  else $endpoint = "https://payflowpro.paypal.com";

  // Initialize our cURL handle.
  $curl = curl_init($endpoint);

  curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);

  // If you get connection errors, it may be necessary to uncomment
  // the following two lines:
  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
  curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);

  curl_setopt($curl, CURLOPT_POST, TRUE);
  curl_setopt($curl, CURLOPT_POSTFIELDS, $apiStr);

  $result = curl_exec($curl);
  if($result === FALSE) {
    echo curl_error($curl);
    return FALSE;
  }
  else return parse_payflow_string($result);
}

有没有人经历过这个?

1 个答案:

答案 0 :(得分:1)

由于您使用的是主机端口80,这很可能是导致连接超时的原因。确保端口443已打开。
以下是有关Payflow基本连接参数的信息:

https://developer.paypal.com/docs/classic/payflow/integration-guide/#payflow-connection-parameters

HOSTPORT (必填)使用端口443。

谢谢,