emileperron/fastspring-php

最新FastSpring API的PHP封装库

v0.3.3 2020-10-03 17:04 UTC

This package is auto-updated.

Last update: 2024-09-27 07:58:14 UTC


README

由于FastSpring自己的基于FastSpring Classic的API封装库已被弃用,这是一个针对最新版本FastSpring的非官方API封装库。

不同端点的目的和信息将不会在此处进行文档记录。有关此类信息,请参阅FastSpring的API文档

入门指南

要开始使用,只需通过Composer要求此包

composer require emileperron/fastspring-php

完成以上步骤后,您就可以在项目中开始使用此库。以下是库的使用和功能的一个简要概述

<?php

use Emileperron\FastSpring\FastSpring;
use Emileperron\FastSpring\Entity\Order;
use Emileperron\FastSpring\Entity\Product;
use Emileperron\FastSpring\Entity\Subscription;

// First, initialize the library with your API credentials
FastSpring::initialize('your-fastspring-api-username', 'your-fastspring-api-password');

// Find all
$orders = Order::findAll();

// Find single by ID/path
$product = Product::find('mytestproduct');

// Find all with filters
$orders = Order::findBy(['products' => 'mytestproduct']);

// Find by IDs
$subscriptions = Subscription::find(['2XzdAW3_SMSl1I18ccj26A', '9zGdAW3_AM1L6I18cqj21Y']);

// Deleting
$product->delete();

// Working with entities
foreach ($subscriptions as $subscription) {
	echo $subscription['state'] . "\n";
}

实体

使用此库有两种方式:通过FastSpring类手动发送请求,以及使用内置实体。

实体提供了一种简单的接口,您可以通过它加载所需的对象并访问其数据。对于FastSpring API提供的每个端点,在Emileperron\FastSpring\Entity命名空间中都有一个相应的实体。

每个实体都以相同的方式工作,因为它们都扩展了同一个AbstractEntity类。这为您提供了开始使用API所需的所有基本功能。

获取对象

要使用实体获取数据,只需在所需的实体类上调用静态方法find($ids)findAll()。这两个方法都将返回一个实体数组。所有实体都实现了ArrayAccess,这意味着您可以使用与数组相同的方式访问它们的数据。

find()方法允许提供ID数组或单个ID。当您提供一个单一ID时,该方法将直接返回结果实体,而不是返回数组。

删除对象

一旦加载了实体,您就可以调用它上的delete()方法来删除它。

创建和更新对象

此功能尚未实现。如果您想实现它,请随时提交拉取请求。

手动请求

如果实体不提供您需要的功能,您始终可以使用FastSpring类进行手动请求。您可以参考FastSpring的API文档,以获取不同端点的确切数据和响应格式以及请求方法。

每个请求方法都有自己的静态方法,它接受两个参数:端点和您希望发送的有效负载。有效负载是可选的,因为GET请求没有有效负载可以用于获取端点的所有ID列表。

以下是一些手动请求的示例

// Making manual requests to the API
$response = FastSpring::get('orders');
$response = FastSpring::post('products', [
	'products' => [
		[
			'product' => 'mytestproduct',
			'sku' => 'my-updated-sku'
		]
	]
]);
$response = FastSpring::delete('orders', ['8UzdwW3_qM6lgI18Pca52y']);

缺少的功能

目前,此库并未将其所有功能都暴露给用户。如果您想添加更多功能,请随时提交拉取请求。

以下是当前库中不可用的功能列表

  • 实体的save()方法(在AbstractEntity中部分开发)
  • 非过滤请求的URL参数(例如,用于本地化)
  • 批量请求
  • 作用域选项(测试/实时/全部)

贡献

如果您想添加功能或为此库提出改进建议,请随时在GitHub存储库上提交拉取请求。我将尽快审查它们并合并它们。

如果您在遇到问题时无法及时修复,也可以提交问题。

支持

最后,如果您使用这个库并且想支持我,以下是一些您可以做到的方式