tuks128 / paddle-php-api
Paddle.com API PHP 库
Requires
- php: >=5.3.0
- ext-curl: *
Requires (Dev)
- phpunit/phpunit: ~4.2.2
This package is auto-updated.
Last update: 2024-09-08 16:25:46 UTC
README
Paddle.com API PHP 封装库
此库提供了一种方便的方式,可以从 PHP 代码中查询 Paddle API。
要求
PHP 5.3 或更高版本。
通过 Composer 安装
您可以通过 Composer 安装此库。将其添加到您的 composer.json 文件中:
{ "require": { "tuks128/paddle-php-api" } }
入门
要与 Paddle API 交互,您需要创建一个 API 对象,并使用 vendor_id / vendor_api_key 进行授权
$api = new \Paddle\Api; $api->authorize_vendor($vendor_id, $vendor_auth_code);
可选地,您可以在创建新 API 对象时设置 HTTP 超时(默认为 30 秒)
$api->set_timeout(60);
在创建新 API 对象时也可以同时设置授权和超时
$api = new \Paddle\Api($vendor_id, $vendor_auth_code, 60);
generate_license() 方法的示例用法
// define $vendor_id and $vendor_auth_code first $api = new \Paddle\Api($vendor_id, $vendor_auth_code, 60); $product_id = 100; $license_code = $api->generate_license($product_id);
常见异常
所有方法都可以抛出以下类型的 \Exception 异常
-
1XX - API 响应错误
-
code: 100 message: '无法找到请求的许可证'
-
code: 101 message: '方法调用错误'
-
code: 102 message: 'API 密钥错误'
-
code: 103 message: '时间戳太旧或无效'
-
code: 104 message: '许可证代码已被使用'
-
code: 105 message: '许可证代码未激活'
-
code: 106 message: '无法找到请求的激活'
-
code: 107 message: '您没有权限访问此资源'
-
code: 108 message: '无法找到请求的产品'
-
code: 109 message: '提供的货币无效'
-
code: 110 message: '无法找到请求的购买记录'
-
code: 111 message: '无效的认证令牌'
-
code: 112 message: '无效的验证令牌'
-
code: 113 message: '解密字符串的填充无效'
-
code: 114 message: '无效或重复的联盟'
-
code: 115 message: '无效或缺失的联盟佣金'
-
code: 116 message: '缺少一个或多个必填参数'
-
code: 117 message: '提供的过期时间不正确'
-
2XX - 一般错误
-
code: 200 message: 'CURL 错误'
-
code: 201 message: 'HTTP 响应代码不正确'
-
code: 202 message: 'API 响应不正确'
-
code: 203 message: '超时必须是正整数'
-
code: 204 message: '未提供供应商凭据'
可用方法
为常规产品生成支付链接
string generate_product_pay_link (int $product_id, [array $optional_arguments = array()])
参数
- int $product_id - 产品的 ID
- array $optional_arguments - 可选参数的关联数组
- string 'title' - 覆盖产品标题
- string 'image_url' - 覆盖产品图片
- float 'price' - 覆盖产品价格
- string 'return_url' - 交易完成后要重定向到的 URL
- bool 'discountable' - 用户是否可以应用优惠券结账
- string 'coupon_code' - 折扣优惠券代码
- bool 'locker_visible' - 产品是否可见在用户的锁中
- bool 'quantity_variable' - 用户是否可以更改产品数量
- string 'paypal_cancel_url' - 当 PayPal 交易被取消时重定向到的 URL
- int 'expires' - 结账过期日期,时间戳
- bool 'is_popup' - 结账是否以弹出窗口的形式显示
- string 'parent_url' - 当点击结账弹出窗口的关闭按钮时重定向到的 URL
- array 'affiliates' - 每个元素都应该包含 affiliate_id 作为键,以及 affiliate_commission 作为值。
- 佣金值应该是浮点数,因此佣金 '0.1' 等于 10%。
- array 'stylesheets' - 每个元素都应该包含样式表类型作为键,以及代码作为值
类型为 \InvalidArgumentException 的验证异常
- code: 300 message: '$product_id 必须是正整数'
- code: 301 message: '$title 必须是字符串'
- 代码:302 信息:'$image_url 必须是一个有效的 URL'
- 代码:303 信息:'$price 必须是一个数字'
- 代码:304 信息:'$price 不能为负数'
- 代码:305 信息:'$return_url 必须是一个有效的 URL'
- 代码:306 信息:'$paypal_cancel_url 必须是一个有效的 URL'
- 代码:307 信息:'$expires 必须是一个有效的时间戳'
- 代码:308 信息:'$expires 必须在将来'
- 代码:309 信息:'$parent_url 必须是一个有效的 URL'
- 代码:310 信息:'$affiliates 必须是一个数组'
- 代码:311 信息:'请将 $affiliates 提供为包含 vendor_id->vendor_commission 的键值数组'
- 代码:312 信息:'$stylesheets 必须是一个数组'
- 代码:313 信息:'请将 $stylesheets 提供为包含 stylesheet_type->stylesheet_code 的键值数组'
- 代码:314 信息:'$webhook_url 只能用于自定义产品'
生成自定义(不在 Paddle 数据库中存在)产品的支付链接
string generate_custom_product_pay_link (string $title, float $price, string $image_url, string $webhook_url, array $optional_arguments)
参数
- 字符串 $title - 自定义产品的标题
- 浮点数 $price - 自定义产品的价格
- 字符串 $image_url - 自定义产品的图片
- 字符串 $webhook_url - 自定义产品的 webhook_url
- array $optional_arguments - 可选参数的关联数组
- string 'return_url' - 交易完成后要重定向到的 URL
- bool 'locker_visible' - 产品是否可见在用户的锁中
- bool 'quantity_variable' - 用户是否可以更改产品数量
- string 'paypal_cancel_url' - 当 PayPal 交易被取消时重定向到的 URL
- int 'expires' - 结账过期日期,时间戳
- bool 'is_popup' - 结账是否以弹出窗口的形式显示
- string 'parent_url' - 当点击结账弹出窗口的关闭按钮时重定向到的 URL
- array 'affiliates' - 每个元素都应该包含 affiliate_id 作为键,以及 affiliate_commission 作为值。
- 佣金值应该是浮点数,因此佣金 '0.1' 等于 10%。
- array 'stylesheets' - 每个元素都应该包含样式表类型作为键,以及代码作为值
- 价格
- 客户电子邮件
类型为 \InvalidArgumentException 的验证异常
- code: 301 message: '$title 必须是字符串'
- 代码:302 信息:'$image_url 必须是一个有效的 URL'
- 代码:303 信息:'$price 必须是一个数字'
- 代码:304 信息:'$price 不能为负数'
- 代码:305 信息:'$return_url 必须是一个有效的 URL'
- 代码:306 信息:'$paypal_cancel_url 必须是一个有效的 URL'
- 代码:307 信息:'$expires 必须是一个有效的时间戳'
- 代码:308 信息:'$expires 必须在将来'
- 代码:309 信息:'$parent_url 必须是一个有效的 URL'
- 代码:310 信息:'$affiliates 必须是一个数组'
- 代码:311 信息:'请将 $affiliates 提供为包含 vendor_id->vendor_commission 的键值数组'
- 代码:312 信息:'$stylesheets 必须是一个数组'
- 代码:313 信息:'请将 $stylesheets 提供为包含 stylesheet_type->stylesheet_code 的键值数组'
- 代码:315 信息:'$webhook_url 必须是一个有效的 URL'
- 代码:316 信息:'$discountable 不允许用于自定义产品'
- 代码:317 信息:'$coupon_code 不允许用于自定义产品'
- 代码:318 信息:'$product_id 不允许用于自定义产品'
为框架产品生成许可证代码
string generate_license (int $product_id)
参数
- int $product_id - 产品的 ID
类型为 \InvalidArgumentException 的验证异常
- code: 300 message: '$product_id 必须是正整数'
获取包含每个产品详细信息的分页产品列表
array get_products ([int $limit = 1], [int $offset = 0])
参数
- 整数 $limit - 返回的产品数量
- 整数 $offset - 从第一个产品开始的偏移量
返回值
返回的数组包含
- 整数 'total' - 产品总数
- 整数 'count' - 返回的产品数量
- 数组 'products' - 返回的产品,每个产品包含
- 整数 'id' - 产品 ID
- 字符串 'name' - 产品名称
- 字符串 'description' - 产品描述
- 浮点数 'base_price' - 产品基础价格
- 浮点数 'sale_price' - 产品销售价格
- 数组 'screenshots' - 产品截图
- 字符串 'icon' - 产品图片
类型为 \InvalidArgumentException 的验证异常
- 代码:319 信息:'$limit 必须是一个正整数'
- 代码:320 信息:'$offset 必须是一个非负整数'
获取客户详情数组
array generate_customers_report ([int $product_id = null])
参数
- 整数 $product_id - 创建报告的产品 ID,如果没有提供,则报告将包含所有产品的数据
返回值
返回的数组包含
- 字符串 'full_name' - 客户的全名
- 字符串 'email' - 客户的电子邮件地址
类型为 \InvalidArgumentException 的验证异常
- code: 300 message: '$product_id 必须是正整数'
获取许可证激活详情数组
激活将在发生后的第二天报告 - 因此今天发生的任何激活将不会包括在内
array generate_license_activations_report ([int $product_id = null], [int $start_timestamp = null], [int $end_timestamp = null])
参数
- 整数 $product_id - 创建报告的产品 ID,如果没有提供,则报告将包含所有产品的数据
- 整数 $start_timestamp - 报告开始时间
- 整数 $end_timestamp - 报告结束日期
返回值
返回的数组包含
- 字符串 'license_code' - 许可证代码
- 字符串 'activation_date' - 激活日期
- 字符串 'customer_ip' - 客户 IP
- 字符串 'customer_email' - 客户电子邮件
类型为 \InvalidArgumentException 的验证异常
- code: 300 message: '$product_id 必须是正整数'
- 代码:321 信息:'$start_timestamp 必须是一个时间戳'
- 代码:322 信息:'$end_timestamp 必须是一个时间戳'
获取订单详情数组
array generate_orders_report ([int $product_id = null], [int $start_timestamp = null], [int $end_timestamp = null])
参数
- 整数 $product_id - 创建报告的产品 ID,如果没有提供,则报告将包含所有产品的数据
- 整数 $start_timestamp - 报告开始时间
- 整数 $end_timestamp - 报告结束日期
返回值
返回的数组包含
- 整数 'order_id' - 订单 ID
- 字符串 'product_name' - 产品名称
- 浮点数 'your_earnings' - 你的收入
- 字符串 'earnings_currency' - 收入货币
- 字符串 'sale_date' - 销售日期
类型为 \InvalidArgumentException 的验证异常
- code: 300 message: '$product_id 必须是正整数'
- 代码:321 信息:'$start_timestamp 必须是一个时间戳'
- 代码:322 信息:'$end_timestamp 必须是一个时间戳'
获取已发送许可证详情数组
array generate_sent_licenses_report ([int $product_id = null])
参数
- 整数 $product_id - 创建报告的产品 ID,如果没有提供,则报告将包含所有产品的数据
返回值
返回的数组包含
- 字符串 'customer_name' - 客户的全名
- 字符串 'customer_email' - 客户的电子邮件地址
- 字符串 'product_name' - 产品名称
- 字符串 'license_code' - 许可证代码
类型为 \InvalidArgumentException 的验证异常
- code: 300 message: '$product_id 必须是正整数'
生成用于调用其他 API 方法的凭据
array generate_auth_code (string $vendor_email, string $vendor_password)
参数
- 字符串 $vendor_email
- 字符串 $vendor_password
返回值
返回的数组包含
- 整数 'vendor_id'
- 字符串 'vendor_auth_code'
类型为 \InvalidArgumentException 的验证异常
- 代码:323 信息:'$vendor_email' 必须是有效的
注册外部应用程序并接收授权码,该应用程序可以使用授权码调用API方法
string register_external_application (string $application_name, string $application_description, string $application_icon_url)
类型为 \InvalidArgumentException 的验证异常
- 代码:324 信息:'$application_icon_url' 必须是有效的URL
获取供应商的公钥
string get_vendor_public_key ()