canapecrm/api-client

CanapeCRM HTTP API 客户端

1.0.0 2017-06-29 10:16 UTC

This package is not auto-updated.

Last update: 2024-09-21 00:29:33 UTC


README

Canape CRM API 实现

此包提供了基本的集成方法实现。当前版本中提供了交易创建、检索交易类型和事件列表的功能。

安装

安装此扩展的首选方式是通过 composer

运行以下命令之一

php composer.phar require --prefer-dist canapecrm/api-client

或者将以下内容添加到您的 composer.json 文件的 require 部分。

canapecrm/api-client

使用方法

配置您的 canapecrm.ru 域名和访问令牌。以下是一个交易创建示例

$oClient = new CanapeCrmApi\ClientLib( '<domain>.canapecrm.ru', CANAPECRM_ACCESS_TOKEN );

出于安全考虑,请将访问令牌定义 CANAPECRM_ACCESS_TOKEN 存放在安全的地方,并从版本控制之外。

try {
    $oResponse = $oClient->createDeal(
        (new CanapeCrmApi\models\NewDeal())
            ->setDomain( $_SERVER['SERVER_NAME'] )
            ->setDealTitle( 'Deal Castle Manufacture website ' . date( "H:i:s d.m.Y" ) )
            ->setDealContent( 'A cannonball for riding on' )
            ->setContactClient( 'Baron Munchausen' )
            ->setContactEmail( 'baron@crm.saas' )
            ->setContactPhone( '+1720 (0511) 97-02-22' )
            /* Works only with auto invoice settings */
            ->addCatalogItem(
                (new CanapeCrmApi\models\Catalog())
                    ->setIndex('CB690')
                    ->setTitle( 'Pumhart von Steyr cannonball' )
                    ->setCount( 1 )
                    ->setPrice( 2000 )
            )
    );

    /**
     * Array with new deal id
     * [ 'id' => <id> ]
     * Optionally returns a href to the generated document
     * [ 'id' => <id>,
     *    'form|offer|invoice' => <url>
     * ]
     */
    $oResponse->json();

} catch ( \CanapeCrmApi\exception\CanapeCrmClientException $e ) {

    /**
     * Catch api-client exceptions such as required fields validation errors
     */

} catch ( GuzzleHttp\Exception\RequestException $e ) {
    echo $e->getRequest() . "\n";
    if ( $e->hasResponse() ) {


        $e->getResponse()->json();
    }
}

要按类型和事件对交易进行分离,请使用方法结果

$oResponse = $oClient->getDealTypes(); // ->getEvents()
$oResponse->json();

然后您可以在创建交易时设置它

$oResponse = $oClient->createDeal(
    (new CanapeCrmApi\models\NewDeal())
        ...
        ->setEventId( <id> )
        ->setDealTypeId( <id> )
        ...
);

通过方法提供javascript计数器的结果

   ...
   ->setCanapeUuid( <uuid> )
   ...