effectconnect/php-sdk

我们的PHP SDK用于基本API集成

3.2.10 2022-01-18 14:29 UTC

This package is auto-updated.

Last update: 2024-09-18 20:54:23 UTC


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>';
    }