0

我将 Big Commerce 用作现成的购物车产品。换句话说,我无权访问购物车的任何服务器端代码。为了将其与 Google Checkout 集成,它提供了以下 URL 以用作 Google Checkout 的 API 回调 URL:

https://store.example.com/googlecheckout/xml.php

但是,我需要提供自己的 API 回调 URL:https://www.example.com/order/preprocess.php

因此,想法是自己在第二个 URL 接收请求,对收到的数据做我需要做的事情,然后将原始请求传递到我的购物车,以便它可以收到新的 Google Checkout 订单的提醒. 这是我的代码:

    $rawPostData = file_get_contents("php://input");

$headers = array(

    'Content-Type: application/xml; charset=UTF-8',
    'HTTPS: on',
    'HTTP_USER_AGENT: Google Checkout Notification Agent 1.0',
    'HTTP_ACCEPT_ENCODING: gzip',
    'Authorization: Basic myBase64MerchantIdColonKey',
    'Accept: application/xml;charset=UTF-8'

);
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL,            "https://store.example.com/googlecheckout/xml.php" );
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt($ch, CURLOPT_POST,           1 );
    curl_setopt($ch, CURLOPT_POSTFIELDS,     $rawPostData ); 
    curl_setopt($ch, CURLOPT_HTTPHEADER,     $headers); 

    $result = curl_exec ($ch);

我已经确认 $rawPostData 确实包含我期望的 XML 数据。但是,$resultcurl_exec 的false. 我使用的 curl 代码来自RAW POST using cURL in PHP

知道为什么curl_exec会失败吗?我需要在我的 curl 请求中包含来自 Google Checkout 的原始请求中的其他参数吗?如果是这样,我将如何找到这些?

4

0 回答 0