luketowers/php-donorperfect-api

DonorPerfect API 的 PHP 封装器

v1.0.0 2024-04-05 02:25 UTC

This package is auto-updated.

Last update: 2024-09-05 03:29:48 UTC


README

这是一个围绕 DonorPerfect API 的简单 PHP 封装器。目前针对 DonorPerfect Online 版本 2020.12。请访问 https://api.warrenbti.com/ 查看在线 API 文档。

安装

通过 Composer 安装,在项目目录中运行 composer require luketowers/php-donorperfect-api

使用方法

为了使用此封装库,您需要提供凭证以访问 DonorPerfect 的 API。

您可能需要一个用于尝试访问的账户的用户登录名和密码,或者通过给 DonorPerfect 支持发送电子邮件获得的 API 密钥。

示例

初始化 API

use LukeTowers\DonorPerfectPHP\DonorPerfect;

// Initialize the client with an API key and app name (max 20 characters)
$api = new DonorPerfect('my_api_key_here', 'NameOfMyApp');

// Initialize the client with a user login and password and app name (max 20 characters)
$api = new DonorPerfect(['login' => 'MyUsername', 'pass' => 'MyPassword'], 'NameOfMyApp');

调用预定义的 DP 操作之一

// Call one of the predefined DP actions
$result = $api->dp_donorsearch(['donor_id' => 1]);

// Call a predefined DP action not yet implemented in this library
$result = $api->call('dp_actionname', DonorPerfect::prepareParams(['donor_id' => 1], $arrayOfParamConfigsExpected));

通过 API 运行自定义的 MS SQL 语句

$pageStart = 1;
$pageEnd = 500;

// Run a custom MS SQL statement through the API
$result = $api->callSql("
    SELECT
        *
    FROM (
        SELECT
            ROW_NUMBER() OVER(ORDER BY dp.donor_id ASC) AS row_number,
            dp.donor_id,
            dp.first_name,
            dp.middle_name,
            dp.last_name,
            dp.email,
            dp.address,
            dp.address2,
            dp.city,
            dp.state,
            dp.zip,
            dp.country,
            dp.gift_total
        FROM dp
        LEFT JOIN dpudf ON dpudf.donor_id = dp.donor_id
        WHERE
            (dp.nomail_reason != 'IA'
            AND dp.nomail_reason != 'DE')
            OR dp.nomail_reason IS NULL
    ) AS tmp
    WHERE tmp.row_number BETWEEN {$pageStart} AND {$pageEnd}
");