2010-09-05 24 views
4

Je suis en train d'obtenir des paiements amazon travailler w/mon application flex, comme indiqué ici: http://miti.pricope.com/2009/07/11/using-amazon-flexible-payment-system-with-flex/Paiements Flex et Amazon

Je l'ai fait exactement comme il le dit, je l'ai téléchargé les fichiers modifiés & l'accès touche & clé secrète. Quand je l'exécute sur localhost ou sur mon serveur de production, je reçois "Signature ne correspond pas"

De quoi d'autre ai-je besoin pour que cela fonctionne? Y at-il autre chose dont j'ai besoin qu'il a oublié d'inclure?

+1

Découvrez pourquoi ces variables sont différentes: querystring de $ et $ _GET [ 'signature'] – Inigoesdr

+1

Ok ... où dois-je obtenir le paramater de setSenderTokenId que j'ai besoin pour PaySample.php? Le fichier ReadMe inclus dans les fichiers amazon indique que je reçois ce de CBUISample.php mais cette page ne retourne aucun type de Token – kristen

+0

Les variables retournées dans votre fichier CBUISample.php sont les suivantes: returnURL, pipelineName, callerKey, version, callerReference, transactionAmount, paymentReason, signature – kristen

Répondre

0

permet d'essayer suivant:

goto return.and trouver function validateQueryString() et changer à ceci:

function validateQueryString() 
{ 
    echo "validing the query string now\n"; 
    $querystring = $_SERVER['QUERY_STRING']; 
    echo $querystring."\n"; 
    echo $_GET['signature']; 
    $obj = new Amazon_FPS_CBUIUtils(AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY); 
    //Original signature received in response from Amazon FPS should be specified. 
    $signatureMatched = $obj->validateQueryString($querystring,$_GET['signature']); 

    if ($signatureMatched) { 
     echo "signature matched \n"; 
    $request = new Amazon_FPS_Model_PayRequest(); 
    //set the proper senderToken here. 
    $request->setSenderTokenId($_GET['tokenID']); 
    $amount = new Amazon_FPS_Model_Amount(); 
    $amount->setCurrencyCode("USD"); 
    //set the transaction amount here; 
    $amount->setValue($_SESSION['transaction_amount']); 
    $request->setTransactionAmount($amount); 
    //set the unique caller reference here. 
    $request->setCallerReference($_GET['callerReference']); 
    $service = new Amazon_FPS_Client(AWS_ACCESS_KEY_ID, 
             AWS_SECRET_ACCESS_KEY); 
    invokePay($service, $request); 
    } 
    else 
     echo "Signature did not match \n"; 
} 

et sortie post ici s'il vous plaît, y compris votre Signature did not match

Merci.