php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.08.2009, 10:41  
Neuer Benutzer
 
Registriert seit: 04.03.2009
Beiträge: 3
Lennynero befindet sich auf einem aufstrebenden Ast
Standard Amazon Webservices - SOAP nimmt Signature nicht

Hallo,

Amazon hat ja gerade seine Webservices umgestellt und erwartet beim Aufruf der Webservices nun eine Signature.

Mit REST ist mir die Verbindung gelungen, bei SOAP beschwert sich Amazon aber mit einem netten:

Zitat:
SoapFault exception: [aws:Client.SignatureDoesNotMatch] The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.
PHP-Code:
function getSOAPAmazon ($str_url$arr_signature)
{
    
$function "ItemSearch";

    
$client = new SoapClient("https://webservices.amazon.com/AWSECommerceService/AWSECommerceService.wsdl", array('exceptions' => 0));

    
$timestamp gmdate("Y-m-d\TH:i:s.000\Z");
    
//$timestamp_encoded = str_replace(":","%3A",str_replace(",","%2C",$timestamp));
    
$timestamp_encoded urlencode($timestamp);

    
$string 'AWSECommerceService'.$function.$timestamp_encoded;
    
    
$signature base64_encode(hash_hmac("sha256"$stringSECRETACCESSSKEYtrue));

    
$header_arr = array(
            new 
SoapHeader("http://security.amazonaws.com/doc/2007-01-01/""AWSAccessKeyId"ACCESSKEYID),
            new 
SoapHeader("http://security.amazonaws.com/doc/2007-01-01/""Signature"$signature),
            new 
SoapHeader("http://security.amazonaws.com/doc/2007-01-01/""Timestamp"$timestamp),
          );
/**/
     
$client->__setSoapHeaders($header_arr);

    
$params = array( 'Service' => 'AWSECommerceService',
            
'AssociateTag' => ASSOCTAG,
            
#'AWSAccessKeyId' => ACCESSKEYID,
            #'Signature' => $signature,
            
'Request' => array('Operation' => 'ItemSearchRequest',
                                      
'ItemPage' => 3,
                                      
'SearchIndex' => 'DVD',
                                      
'ResponseGroup' => 'Large',
                                      
'Keywords' => 'Karate')

            );

    return 
$client->__soapCall($function, array($params));

(Nicht wundern, die Variablen die Übergeben werden... werden in der Version nicht genutzt, bzw. stammen noch aus einem früherem Stand der Methode).

Encodierung des Timestamps hatte ich auch schon auf verschiedene Weisen getestet, führte aber immer zum gleichen Ergebnis (auch die drei "000" hatte ich weggelassen, auch keine Änderung).

Signaturübergabe im Array "params" wird nicht erkannt, im Header scheint das schon richtig zu sein.

Momentan fehlen mir die Ideen, zumal ich bei der Suche kreuz und quer durchs Netz feststellen musste, dass die meisten es dann mit REST lösen. Da wir aber bereits SOAP an mehreren Stellen nutzen, wäre es wünschtenswert das wir das auch hier wieder schaffen.

Hat jemand vielleicht eine Idee oder noch besser eine Lösung?
Lennynero ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] SOAP und Arrays DarkPrisma PHP-Fortgeschrittene 1 07.07.2009 17:53
SOAP API von validator.w3.org auslesen Sascha1976 PHP Tipps 2009 3 03.07.2009 18:34
SOAP Dokumentelstil Mad_Dog PHP-Fortgeschrittene 2 19.09.2008 20:27
Fragen und Verwendung der SOAP Erweiterung von PHP Tanja PHP-Fortgeschrittene 5 15.09.2008 09:29
Größenbeschränkung bei PEAR SOAP Antwort? Anotherone PHP-Fortgeschrittene 1 13.01.2008 20:32
SOAP Server Parameter richtig zuordnen Anotherone PHP Tipps 2008 0 12.12.2007 11:23
SOAP bindings ?!? stonefred71 PHP-Fortgeschrittene 0 08.11.2007 18:27
Skript für Amazon Web Services snowflow PHP Tipps 2007 5 27.05.2007 14:01
Amazon Web Services 2: Packshots laden iRadiaX PHP-Fortgeschrittene 2 15.10.2006 13:50
php5 soap extension, soap attachment zcmaster PHP-Fortgeschrittene 0 07.08.2006 16:09
SOAP und PHP cola PHP-Fortgeschrittene 21 01.06.2006 11:33
Stabilität von SOAP (client) unter PHP5 ? Infos gesucht. PHP-Fortgeschrittene 5 13.09.2005 07:01
[Erledigt] XML String an Webservice übergeben (SOAP) PHP-Fortgeschrittene 3 26.08.2005 12:40
[Erledigt] Performance Fragen zu PHP4/OOP und SOAP RPC Webservice PHP-Fortgeschrittene 4 26.05.2005 14:35
XML Signature und XML Encryption??? PHP-Fortgeschrittene 1 06.07.2004 14:24

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
amazon awsaccesskeyid, aws:client.signaturedoesnotmatch, php soap signature, soap signature, amazon request signature, php amazon soap call, aws signaturedoesnotmatch, webservice arrays verarbeiten, amazon webservice signature, amazon timestamp, amazon soapheader, amazon aws signaturedoesnotmatch, amazon itemsearch php, amazon itemsearch signature, amazon webservice signature php, signaturedoesnotmatch aws, aws signaturedoesnotmatch php, amazon webservice rest, amazon webservice php search, \amazon soap\ webservice

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:47 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum