Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 8th, 2012  |  syntax: None  |  size: 3.22 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Problems encoding Amazon Flexible Payments secret string in PHP
  2. $string_to_sign = "GETn
  3. authorize.payments-sandbox.amazon.comn
  4. cobranded-ui/actions/start?
  5. SignatureMethod=HmacSHA256&SignatureVersion=2&callerKey=my_key&callerReference=YourCallerReference&paymentReason=donation&pipelineName=SingleUse&returnUrl=http%3A%2F%2Fyourwebsite.com%2Freturn.html&transactionAmount=4.0";
  6.        
  7. $encoded_string_to_sign = URLEncode(Base64_Encode(hash_hmac("sha256", $string_to_sign, 'my_secret_key')));
  8.        
  9. Caller Input Exception: The following input(s) are either invalid or absent:[signatureMethod]
  10.        
  11. <?php
  12. $string_to_sign = 'GET
  13. authorize.payments-sandbox.amazon.com/cobranded-ui/actions/startSignatureMethod=HmacSHA256&SignatureVersion=2&callerKey=AKIAJENBYSJCJX2IDWDQ&callerReference=YourCallerReference&paymentReason=donation&pipelineName=SingleUse&returnUrl=http%3A%2F%2Fproblemio.com&transactionAmount=4.0';
  14.  
  15.     $encoded_string_to_sign = URLEncode(Base64_Encode(hash_hmac("sha256", $string_to_sign, 'my_secret_key')));
  16.  
  17. $amazon_request_sandbox = 'https://authorize.payments-sandbox.amazon.com/cobranded-ui/actions/start?SignatureVersion=2&returnUrl='.$return_url.'&paymentReason='.$payment_reason.'&callerReference=YourCallerReference&callerKey='.$my_access_key_id.'&transactionAmount=4.0&pipelineName=SingleUse&SignatureMethod=HmacSHA256&Signature='.$encoded_string_to_sign;
  18.  
  19. //echo $amazon_request_sandbox; - use this if you want to see the resulting request and paste it into the browser
  20.  
  21. header('Location: '.$amazon_request_sandbox);
  22. ?>
  23.        
  24. $return_url = rawurlencode('http://problemio.com');
  25. $payment_reason = 'donation';
  26. $transaction_amount = rawurlencode('4.0');
  27.  
  28. $secret_key = '<Your_Secret_Key>';
  29. $my_access_key_id = '<Your_Access_Key>';
  30.  
  31. $string_to_sign = 'GET
  32. authorize.payments-sandbox.amazon.com
  33. /cobranded-ui/actions/start
  34. SignatureMethod=HmacSHA256&SignatureVersion=2&callerKey=' . $my_access_key_id . '&callerReference=YourCallerReference&paymentReason=' . $payment_reason . '&pipelineName=SingleUse&returnUrl=' . $return_url . '&transactionAmount=' . $transaction_amount;
  35.  
  36. $encoded_string_to_sign = URLEncode(Base64_Encode(hash_hmac("sha256", $string_to_sign, $secret_key, true)));
  37.  
  38. $amazon_request_sandbox = 'https://authorize.payments-sandbox.amazon.com/cobranded-ui/actions/start?SignatureVersion=2&returnUrl=' . $return_url . '&paymentReason=' . $payment_reason . '&callerReference=YourCallerReference&callerKey=' . $my_access_key_id . '&transactionAmount=4.0&pipelineName=SingleUse&SignatureMethod=HmacSHA256&Signature=' . $encoded_string_to_sign;
  39.        
  40. <?php
  41.  
  42. require_once 'CBUISingleUsePipeline.php';
  43. require_once 'CBUIPipeline.php';
  44.  
  45. $secret_key = '<Your_Secret_Key>';
  46. $my_access_key_id = '<Your_Access_Key>';
  47.  
  48. $return_url = 'http://problemio.com';
  49. $transaction_amount = '4.0';
  50. $caller_reference = '<Your_Caller_Reference>';
  51. $payment_reason = 'donation';
  52.  
  53. $base = 'https://authorize.payments-sandbox.amazon.com/cobranded-ui/actions/start';
  54.  
  55. $pipeline = new Amazon_FPS_CBUISingleUsePipeline($my_access_key_id, $secret_key);
  56. $pipeline->setMandatoryParameters($caller_reference, $return_url, $transaction_amount);
  57. $pipeline->addParameter('paymentReason', $payment_reason);
  58. $uRL = $pipeline->getURL($base);
  59.  
  60. ?>
  61.        
  62. base64_encode(
  63.     hash_hmac($hash, $data, $key, true)
  64. );