Попытка обернуть голову вокруг нового API Adaptive Payments PayPal – в частности, функции ConvertCurrency. Кому-нибудь повезло с этим в PHP?
Документация: https://www.x.com/docs/DOC-1400
Очень легко конвертировать в diff. валюты, используя SDK Paypal Adaptive Payments. Предполагая, что у вас есть необходимая информация. (API username / passwd и т. Д.), Чтобы делать запросы к API, это можно сделать следующим образом:
<?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>';
Результат должен выглядеть примерно так:
$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 ) ) ) ) )
Как вы можете видеть, очень просто использовать API ConvertCurrency, просто загрузить SDK и начать играть с ним;)