Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 处理谷歌结账单通知,然后传递到我的购物车软件_Php_Curl_Http Headers_Google Checkout - Fatal编程技术网

Php 处理谷歌结账单通知,然后传递到我的购物车软件

Php 处理谷歌结账单通知,然后传递到我的购物车软件,php,curl,http-headers,google-checkout,Php,Curl,Http Headers,Google Checkout,我使用大商业作为现成的购物车产品。换句话说,我无法访问购物车的任何服务器端代码。要将其与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集成,它提供以下URL用作Google Checkout的API回调URL:

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

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

因此,我们的想法是自己在第二个URL上接收请求,用接收到的数据做我需要做的事情,然后将原始请求传递给我的购物车,这样它就可以收到新的Google结帐订单的警报。这是我的密码:

    $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\u exec的
$result
false
。我使用的curl代码来自


知道为什么
curl\u exec
会失败吗?Google Checkout的原始请求中是否有其他参数需要包含在curl请求中?如果是这样的话,我将如何找到它们?

您可能想尝试使用
XML
的正确
内容类型作为第一步,然后查看
curl\u getinfo()返回请求失败的详细信息。免责声明:不是php开发人员。关于(基本)身份验证详细信息(标头)如何?如果您的购物车正在实现
XML通知
,那么它必须。@EdSF-不太相关。我正在测试。我还不需要担心验证请求。我知道它们是合法的。@maxedison不是这样的-我的意思是,如果购物车软件需要auth头,而您没有转发它们,那么它(应该)会失败-假设它(购物车软件)正确地实现了
XML通知
。@EdSF谢谢!但是,curl_exec()仍然失败。我已经更新了代码以显示我正在设置的标题。您觉得它正确吗(即使您不是php开发人员)?