dealt/dealt-sdk

v0.0.10 2023-05-15 13:38 UTC

This package is auto-updated.

Last update: 2024-09-15 16:51:12 UTC


README

Dealt PHP SDK

安装 ⚙️

要求

PHP 7+ - 库在php 7.0, 7.1, 7.2, 7.3, 7.4 & 8.1上进行了测试

Composer
composer require dealt/dealt-sdk

用法 ✨

Dealt 客户端初始化

使用您的API密钥初始化Dealt客户端。您可以使用DealtEnvironment常量指定要针对的API环境。使用DealtEnvironment.TEST进行开发。

use Dealt\DealtSDK\DealtClient;
use Dealt\DealtSDK\DealtEnvironment;

$client = new DealtClient([
    "api_key" => "secret_dealt_api_key",
    "env" => DealtEnvironment::$PRODUCTION
]);
检查优惠可用性

检查给定国家/邮政编码是否有可用优惠

/** @var Dealt\DealtSDK\GraphQL\Types\Object\OfferAvailabilityQuerySuccess */
$offer = $client->offers->availability([
    'offer_id' => 'your-offer-uuid',
    'address'  => [
        'country' => 'France',
        'zip_code' => '75016',
    ]
]);

$available = $offer->available;

/** @var Dealt\DealtSDK\GraphQL\Types\Object\Money */
$net_price = $offer->net_price;

/** @var Dealt\DealtSDK\GraphQL\Types\Object\Money */
$gross_price = $offer->gross_price;

/** @var Dealt\DealtSDK\GraphQL\Types\Object\Money */
$vat_price = $offer->vat_price;
通过ID获取任务
/** @var Dealt\DealtSDK\GraphQL\Types\Object\MissionQuerySuccess */
$result = $client->missions->get("your-mission-id");

/** @var Dealt\DealtSDK\GraphQL\Types\Object\Mission */
$mission = $result->mission;

/** @var Dealt\DealtSDK\GraphQL\Types\Object\Offer */
$offer = $mission->offer;
获取所有任务
/** @var Dealt\DealtSDK\GraphQL\Types\Object\MissionsQuerySuccess */
$result = $client->missions->all();

/** @var Dealt\DealtSDK\GraphQL\Types\Object\Mission[] */
$missions = $result->missions;
提交任务
/** @var Dealt\DealtSDK\GraphQL\Types\Object\SubmitMissionMutationSuccess */
$result = $client->missions->submit([
    "offer_id" => "your-offer-id",
    "address" => [
        "country" => "France",
        "zip_code" => "92190",
        "city" => "Antony",
        "street1" => "XX Rue de la Paix"
    ],
    "customer" => [
        "first_name" => "John",
        "last_name" => "Doe",
        "email_address" => "xxx@yyy.zzz",
        "phone_number" => "+33700000000"
    ],
    "webHookUrl" => "https://optional.webhook.url",
    "extraDetails" => "https://test-shop.com/optional/product.html"
]);

/** @var Dealt\DealtSDK\GraphQL\Types\Object\Mission */
$mission = $result->mission;
取消任务
/** @var Dealt\DealtSDK\GraphQL\Types\Object\CancelMissionMutationSuccess */
$result = $client->missions->cancel("your-mission-id");

/** @var Dealt\DealtSDK\GraphQL\Types\Object\Mission */
$mission = $result->mission;
返回类型

在与Dealt PHP SDK交互时可能会遇到的常见返回类型

Dealt\DealtSDK\GraphQL\Types\Object\Mission

Dealt\DealtSDK\GraphQL\Types\Object\Offer

Dealt\DealtSDK\GraphQL\Types\Object\Money

开发 👨🏼‍💻

为了运行E2E测试,您需要在当前会话中导出以下环境变量(或在.zshrc或.bashrc中自动源它们)

DEALT_TEST_API_KEY=your-secret-api-key
DEALT_TEST_OFFER_ID=your-offer-id
composer lint # lint source files
composer test:lint # ensure valid codestyle
composer test:types # phpstan reporting
composer test:unit # phpunit tests

Dealt GraphQL API兼容性 ✨