2009-11-24 6 views

Antwort

17

Es ist sehr einfach zu dif zu konvertieren. Währungen mit Paypals Adaptive Payments SDK. Vorausgesetzt, Sie haben die notwendigen Informationen. (API Benutzername/passwd, etc.), um Anfragen an die API zu machen, es kann getan werden, wie folgt:

<?php 

//First we need to include the class file of the Adaptive Payments 
include 'AdaptivePayments.php'; 

// Create an instance, you'll make all the necessary requests through this 
// object, if you digged through the code, you'll notice an AdaptivePaymentsProxy class 
// wich has in it all of the classes corresponding to every object mentioned on the 
// documentation of the API 
$ap = new AdaptivePayments(); 

// Our request envelope 
$requestEnvelope = new RequestEnvelope(); 
$requestEnvelope->detailLevel = 0; 
$requestEnvelope->errorLanguage = 'en_US'; 

// Our base amount, in other words the currency we want to convert to 
// other currency type. It's very straighforward, just have a public 
// prop. to hold de amount and the current code. 
$baseAmountList = new CurrencyList(); 
$baseAmountList->currency = array('amount' => 15, 'code' => 'USD'); 

// Our target currency type. Given that I'm from Mexico I would like to 
// see it in mexican pesos. Again, just need to provide the code of the 
// currency. On the docs you'll have access to the complete list of codes 
$convertToCurrencyList = new CurrencyCodeList(); 
$convertToCurrencyList->currencyCode = 'MXN'; 

// Now create a instance of the ConvertCurrencyRequest object, which is 
// the one necessary to handle this request. 
// This object takes as parameters the ones we previously created, which 
// are our base currency, our target currency, and the req. envelop 
$ccReq = new ConvertCurrencyRequest(); 
$ccReq->baseAmountList = $baseAmountList; 
$ccReq->convertToCurrencyList = $convertToCurrencyList; 
$ccReq->requestEnvelope = $requestEnvelope; 

// And finally we call the ConvertCurrency method on our AdaptivePayment object, 
// and assign whatever result we get to our variable 
$result = $ap->ConvertCurrency($ccReq); 

// Given that our result should be a ConvertCurrencyResponse object, we can 
// look into its properties for further display/processing purposes 
$resultingCurrencyList = $result->estimatedAmountTable->currencyConversionList; 
$baseAmount = $resultingCurrencyList->baseAmount->amount; 
$baseAmountCode = $resultingCurrencyList->baseAmount->code; 
$convertedAmount = $resultingCurrencyList->currencyList->currency->amount; 
$convertedAmountCode = $resultingCurrencyList->currencyList->currency->code; 

echo '<br /> $' . $baseAmount . ' ' . $baseAmountCode . ' is $' . $convertedAmount . ' ' . $convertedAmountCode; 

// And here just for the sake of knowing how we get the result from Paypal's API 
echo '<pre>'; 
print_r($result); 
echo '</pre>'; 

Der Ausgang etwas sein sollte:

$15 USD is $159.75 MXN 

ConvertCurrencyResponse Object 
(
    [responseEnvelope] => ResponseEnvelope Object 
     (
      [timestamp] => 2010-04-20T13:27:40.278-07:00 
      [ack] => Success 
      [correlationId] => b940006680f6a 
      [build] => 1238639 
     ) 

    [estimatedAmountTable] => stdClass Object 
     (
      [currencyConversionList] => CurrencyConversionList Object 
       (
        [baseAmount] => stdClass Object 
         (
          [code] => USD 
          [amount] => 15 
         ) 

        [currencyList] => CurrencyList Object 
         (
          [currency] => currency Object 
           (
            [code] => MXN 
            [amount] => 159.75 
           ) 

         ) 

       ) 

     ) 

) 

Wie Sie sehen können, ist es sehr einfach, die ConvertCurrency API zu verwenden, laden Sie einfach das SDK herunter und spielen Sie damit;)

+1

Danke für die brillante Antwort. Ich frage mich nur, wie Sie Ergebnisse für mehrere Währungen erhalten. Ich versuchte etwas wie $ convertToCurrencyList-> currencyCode [] = 'MXN'; $ convertToCurrencyList-> currencyCode [] = 'JPY'; Aber es heißt Versuch, Eigenschaft von Nicht-Objekt zu bekommen. Vielen Dank. –

Verwandte Themen