effectconnect / php-sdk
我们的PHP SDK用于基本API集成
Requires
- php: >=5.5
README
EffectConnect API集成SDK
这是一个用于开始连接我们API的简单SDK。
到目前为止,此SDK仅包括创建订单和注入产品feed的功能和示例。
有关EffectConnect API的更多信息: EffectConnect 文档
入门指南
步骤1:安装项目
可以通过composer包含项目
composer require effectconnect/php-sdk
或下载源代码并包含自动加载器
require_once(realpath(__DIR__.'/..').'/autoload/effectConnectSdk.php');
步骤2:创建API Keyset
为此步骤,您需要前往您的EffectConnect环境并创建一个API Keyset。
确保您为此keyset分配所有必要的权限,以便使用您打算使用的调用。
步骤3:基础知识
要使用任何API调用,您需要创建一个Keychain并实例化一个Core对象。
use EffectConnect\PHPSdk\Core\Helper\Keychain; use EffectConnect\PHPSdk\Core; $keychain = (new Keychain()) ->setPublicKey('YourPublicKey') ->setSecretKey('YourSecretKey') ; // Instantiate the API Core $core = new Core($keychain);
步骤4:创建Api Call对象
目前,以下Call对象可用
- OrderCall
- OrderListCall
- ProductsCall
- ProcessCall
- ReportCall
这些对象可以通过在Core中调用它们的方法获得
$orderCall = $core->OrderCall();
步骤5:准备您的Api Call
所有Api调用都有其自己的要求,并将被验证。如果传递给调用的信息无效,将抛出InvalidPayloadException
。
在此示例中,我们将读取标识符为EC-ORDER-ID
的订单;
use EffectConnect\PHPSdk\Core\Model\Request\OrderReadRequest; $orderReadRequest = (new OrderReadRequest()) ->setIdentifierType(OrderReadRequest::TYPE_EFFECTCONNECT_NUMBER) ->setIdentifier('EC-ORDER-ID') ; $apiCall = $orderCall->read($orderReadRequest);
现在我们已经准备好了ApiCall
对象,我们可以调用EffectConnect。在此阶段尚未进行通信,ApiCall::call()
方法是您首次(也是唯一一次)连接到EffectConnect API服务器。
$apiCall->call();
步骤6:检查调用
我们现在已经向EffectConnect发出调用,是时候检查一切是否按我们预期进行,或者是否一切都走向了错误的方向...
如果出了大问题,ApiCall::isSuccess()
方法将返回false,并且可以通过ApiCall::getErrors()
方法找到更多关于此失败的信息。
if (!$apiCall->isSuccess()) { // Check $apiCall->getErrors() for errors that have occurred. }
步骤7:处理您的响应
太好了,一切完全按照我们计划的那样进行!现在是我们处理响应的时候了。SDK包含所有Response Containers的对象。
这意味着您可以访问和处理EffectConnect返回的所有信息。在我们的示例中,OrderReadResponseContainer
的实例将包含在我们的Response
对象中。
让我们找出分配给我们的EC-ORDER-ID
的哪些标识符!
// The EffectConnect\PHPSdk\Core\Model\Response\ApiResponseContainer $responseContainer = $apiCall->getResponseContainer(); // The EffectConnect\PHPSdk\Core\Model\Response\Response $response = $responseContainer->getResponse(); if ($response->getResult() === Response::STATUS_SUCCESS) { // The EffectConnect\PHPSdk\Core\Model\Response\OrderReadResponseContainer $orderResponse = $response->getResponseContainer(); // Our EffectConnect\PHPSdk\Core\Model\Response\Order $order = $orderResponse->getOrder(); echo '<pre>'; print_r($order->getIdentifiers()); echo '</pre>'; }