市販のショッピング カート製品として Big Commerce を使用しています。つまり、ショッピング カートのサーバー側コードにはアクセスできません。Google Checkout と統合するために、Google Checkout の API コールバック URL として使用する次の URL を提供します。
https://store.example.com/googlecheckout/xml.php
ただし、独自の API コールバック URL を提供する必要があります。https://www.example.com/order/preprocess.php
つまり、2 番目の 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 データを含んでいることを確認しました。ただし、$result
curl_exec のはfalse
. 私が使用しているcurlコードは、PHPでcURLを使用したRAW POSTからのものです。
なぜcurl_exec
失敗しているのですか?Google Checkout からの元のリクエストに、curl リクエストに含める必要がある他のパラメータがある可能性はありますか? もしそうなら、どうすればそれらを見つけることができますか?