处理Google Checkout订单通知,然后转到我的购物车软件

时间:2012-12-10 19:33:48

标签: php curl http-headers google-checkout

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

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

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

所以,我的想法是在第二个网址上自己接收请求,做我需要处理收到的数据的事情,然后将原始请求传递到我的购物车,以便它可以提醒新的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数据。但是,curl_exec的$resultfalse。我使用的卷曲代码来自RAW POST using cURL in PHP

知道curl_exec失败的原因吗? Google Checkout的原始请求中是否还有其他参数需要包含在我的curl请求中?如果是这样,我怎么能找到那些?

0 个答案:

没有答案