0

市販のショッピング カート製品として 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 データを含んでいることを確認しました。ただし、$resultcurl_exec のはfalse. 私が使用しているcurlコードは、PHPでcURLを使用したRAW POSTからのものです。

なぜcurl_exec失敗しているのですか?Google Checkout からの元のリクエストに、curl リクエストに含める必要がある他のパラメータがある可能性はありますか? もしそうなら、どうすればそれらを見つけることができますか?

4

0 に答える 0