2010-09-05 92 views
4

我試圖讓亞馬遜支付工作瓦特/我的Flex應用程序,如下所示: http://miti.pricope.com/2009/07/11/using-amazon-flexible-payment-system-with-flex/Flex和亞馬遜支付

我已經做了完全一樣,他說,我已經下載了文件&改變了訪問密鑰&密鑰。當我在本地主機或我的生產服務器上運行它時,我得到「簽名不匹配」

我還需要什麼來使此工作?還有什麼我需要的,他忘了包括。?

+1

找出爲什麼這些變量是不同的: $查詢字符串和$ _GET [「簽名」] – Inigoesdr 2010-09-05 06:25:47

+1

好......我在哪裏得到setSenderTokenId paramater我需要PaySample.php?亞馬遜文件中包含的自述文件說我從CBUISample.php中得到這個,但該頁面不返回任何類型的令牌 – kristen 2010-09-05 14:10:51

+0

CBUISample.php文件中返回的變量如下: returnURL, pipelineName, callerKey, 版本, callerReference, transactionAmount, paymentReason, 簽名 – kristen 2010-09-05 14:42:13

回答

0

讓我們嘗試下:這裏

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"; 
} 

,後輸出請,包括您的Signature did not match

感謝:

轉到return.and找到function validateQueryString()並改變了這一點。