PayPal Adaptive Payments ConvertCurrency API 的 PHP 示例

标签 php paypal paypal-adaptive-payments

我正在努力了解新的 PayPal 自适应支付 API - 特别是 ConvertCurrency 功能。有没有人在 PHP 中遇到过这个问题?

文档:https://www.x.com/docs/DOC-1400

最佳答案

转换为 dif 非常容易。使用 Paypal 的自适应支付 SDK 的货币。假设您有必要的信息。 (API username/passwd, etc) 向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
                                )

                        )

                )

        )

)

如您所见,使用 ConvertCurrency API 非常简单,只需下载 SDK 并开始使用它;)

关于PayPal Adaptive Payments ConvertCurrency API 的 PHP 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1789699/

相关文章:

PayPal Sandbox 500 代理错误 - PayPal Adaptive

javascript - 如何获取电子邮件地址的 Google+ 个人资料照片?

php - PayPal IPN 监听器使用沙箱但不实时

php - 将字符串转换为数组表数据php

paypal - 了解 WadeShuler 的 IPN fork

paypal - IPN + 结帐后将客户带到 URL

ios - 如何为PayPal自适应(MPL)付款进行服务器验证

paypal - Auth/Capture 链式支付 (PayPal)

php - 有没有办法通过一个条件获取记录

php - jquery、ajax返回奇怪的数据?