Отслеживание пожертвований Paypal с индикатором прогресса - PullRequest
1 голос
/ 17 октября 2011

Я занимаюсь проектированием и созданием сайта для некоммерческой организации.Им нужна кнопка пожертвования PayPal, и я хотел бы показать, сколько они уже собрали.

Я недостаточно знаком с API PayPal, чтобы даже приблизиться.Итак, все, что мне нужно знать, это как получить общую сумму пожертвования в виде целочисленного значения, чтобы я мог разделить ее на необходимую сумму и получить процент.

Кто-нибудь мало знаком с тем, как это сделать?

Ответы [ 2 ]

3 голосов
/ 18 октября 2011

Для этого в PayPal есть «лабораторный» (бета) виджет. Посмотрите на https://giving.paypallabs.com/authenticate/review

0 голосов
/ 17 октября 2011

Никогда не играл с PayPal API, но у них есть образцы кода:

Образцы кода Paypal

это их пример кода getBalance:

require_once 'PayPal.php';
require_once 'PayPal/Profile/Handler/Array.php';
require_once 'PayPal/Profile/API.php';
require_once 'PayPal/Type/GetBalanceRequestType.php';
require_once 'PayPal/Type/GetBalanceResponseType.php';

$environment = 'sandbox';   // or 'beta-sandbox' or 'live'

//--------------------------------------------------
// PROFILE
//--------------------------------------------------
/**
 *                    W A R N I N G
 * Do not embed plaintext credentials in your application code.
 * Doing so is insecure and against best practices.
 *
 * Your API credentials must be handled securely. Please consider
 * encrypting them for use in any production environment, and ensure
 * hat only authorized individuals may view or modify them.
 */

$handler = & ProfileHandler_Array::getInstance(array(
            'username' => 'my_api_username',
            'certificateFile' => null,
            'subject' => null,
            'environment' => $environment));

$pid = ProfileHandler::generateID();

$profile = & new APIProfile($pid, $handler);

$profile->setAPIUsername('my_api_username');
$profile->setAPIPassword('my_api_password');
$profile->setSignature('my_api_signature');
$profile->setCertificateFile('my_cert_file_path');
$profile->setEnvironment($environment);
//--------------------------------------------------

$balance_request =& PayPal::getType('GetBalanceRequestType');
$balance_request->setVersion("51.0");

$caller =& PayPal::getCallerServices($profile);

// Execute SOAP request
$response = $caller->GetBalance($get_balance_request);

switch($response->getAck()) {
    case 'Success':
    case 'SuccessWithWarning':
        // Extract the GetBalance response parameters
        $balance = $response->getBalance();
        $balance_amt = $balance->_value;
        $balance_currency_id = $balance->getattr('currencyID');

        $balance_time_stamp = $response->getBalanceTimeStamp();

        $balance_holdings = $response->getBalanceHoldings();
        $balance_holdings_amt = $balance_holdings->_value;
        $balance_holdings_currency_id = $balance_holdings->getattr('currencyID');

        exit('GetBalance Completed Successfully: ' . print_r($response, true));

    default:
        exit('GetBalance failed: ' . print_r($response, true));
}

?>
...