2016-10-22 3 views
0

ねえ遠隔カートをセットアップしようとしています。 Amazonは顧客がサイトを離れずにリモートカートのコード例をリストしていないので、非常に不満です。AMAZON:サイトを離れずにリモートカートに追加

これまでのところ私はここにいる。

<form method="GET" action="http://www.amazon.com/gp/aws/cart/add.html"> 
<input type="hidden" name="AWSAccessKeyId" value="Access Key ID" />  <br/> 
<input type="hidden" name="AssociateTag" value="Associate Tag" /><br/> 
<p>One Product<br/> 
ASIN:<input type="text" name="ASIN.1"/><br/> 
Quantity:<input type="text" name="Quantity.1"/><br/> 
<p>Another Product<br/> 
ASIN:<input type="text" name="ASIN.2"/><br/> 
Quantity:<input type="text" name="Quantity.2"/><br/> 
</p> 
<input type="submit" name="add" value="add" /> 
</form> 

しかし、私は、彼らはカートにアイテムを追加して、私の上にとどまることができるようにしたい:私は(: http://docs.aws.amazon.com/AWSECommerceService/latest/DG/AddToCartForm.htmlから)誰かが私のサイトを残し、これを使って自分のサイトからアマゾンに製品を追加するために取得することができますサイト。これは私がそれを達成する方法です:

http://webservices.amazon.com/onca/xml? 
Service=AWSECommerceService& 
AWSAccessKeyId=[AWS Access Key ID]& 
AssociateTag=[Associate Tag]& 
Operation=CartCreate& 
Item.1.OfferListingId=B000062TU1& 
Item.1.Quantity=2 
&Timestamp=[YYYY-MM-DDThh:mm:ssZ] 
&Signature=[Request Signature] 

しかし、私は完全にタイムスタンプと署名を生成する方法については混乱しています。これをフォームアクションに入れますか?コード例はどこにもありますか?私は一日中検索しており、それを見つけることはできません。どんな助けでも大歓迎です。

答えて

0

私はこのメソッドを使用してapi request urlを生成しています。これがあなたを助けると信じてください

$uri = "/onca/xml"; 
$asin = "B00C5AHTC0"; 
$end_point = "webservices.amazon.com"; 

      $params = array(
      "Service" => "AWSECommerceService", 
      "Operation" => "CartCreate", 
      'Version' => "2013-08-01", 
      "AWSAccessKeyId" => AWS_ACCESS_KEY, 
      "AssociateTag" => AWS_ASSOCIATE_TAG, 
      "Item.1.ASIN" => $asin, 
      "Item.1.Quantity" => "5", 
      "Timestamp"=> gmdate('Y-m-d\TH:i:s\Z') 
     ); 

     // Sort the parameters by key 
     ksort($params); 

     $pairs = array(); 

     foreach ($params as $key => $value) { 
      array_push($pairs, rawurlencode($key) . "=" . rawurlencode($value)); 
     } 

     // Generate the canonical query 
     $canonical_query_string = join("&", $pairs); 
     $string_to_sign   = "GET\n" . $end_point. "\n" . $uri . "\n" . $canonical_query_string; 
     $signature    = base64_encode(hash_hmac("sha256", $string_to_sign, AWS_SECRET_KEY, true)); 

     $request_url   = 'http://' . $end_point. $uri . '?' .$canonical_query_string . '&Signature='.rawurlencode($signature); 
関連する問題