wildlink / wildlink-api-php

Wildlink API的简单PHP接口(更多信息请访问 https://www.wildlink.me/)

1.1.8 2022-04-27 21:29 UTC

README

PHP客户端,用于与Wildfire/Wildlink API交互。将产品品牌链接转换为联盟版本以产生收入。更多信息请访问 https://www.wildlink.me/

另请参阅

安装

建议通过Composer进行安装。如果您是初次使用Composer安装库,请参阅上面的入门指南。

composer require wildlink/wildlink-api-php

使用

实例化

// minimum auth, NOTE: this creates a new device
$wfClient = new WildlinkClient($app_id, $secret);

// create a new "session" for a previously created device (fetches a new deviceToken from Wildfire server)
$wfClient = new WildlinkClient($app_id, $secret, $device_key);

// prepare to make a new request with a previously stored device key and device auth token (no Wildfire server hit)
$wfClient = new WildlinkClient($app_id, $secret, $device_key, $device_token);

echo $wfClient->device_key; // Device Key is used for authing the device in the future - it doesn't expire
echo $wfClient->device_id; // Device ID is used for referencing device in reporting data
echo $wfClient->device_token; // Device Token is used for authing device - it expires

获取特定商家元数据

可以使用getMerchants调用获取给定商家的元数据(包括图片)。此调用可以接受单个整数或整数数组。

// single merchant request
$singleMerchant = $wfClient->getMerchantsById(5477615);
var_dump($singleMerchant);

// multiple merchant request
$multipleMerchants = $wfClient->getMerchantsById(array(5482877,5478747));
var_dump($multipleMerchants);

示例返回

Array
(
    [0] => stdClass Object
        (
            [ID] => 5478747
            [Name] => Hotels.com
            [ShortCode] => mPEE27LOAhI
            [ShortURL] => http://wild.link/mPEE27LOAhI
            [Images] => Array
                (
                    [0] => stdClass Object
                        (
                            [ID] => 3
                            [Kind] => FEATURED
                            [Ordinal] => 1
                            [ImageID] => 3
                            [URL] => https://images.wildlink.me/wl-image/a3a4df7b12404451fe3f2099122847e5dc3ed6b5.jpeg
                            [Width] => 660
                            [Height] => 380
                        )
                    [1] => stdClass Object
                        (
                            [ID] => 808
                            [Kind] => LOGO
                            [Ordinal] => 1
                            [ImageID] => 809
                            [URL] => https://images.wildlink.me/wl-image/2fe289045e0794f3bcf7f3ae03d7850f5b51cf6c.jpeg
                            [Width] => 200
                            [Height] => 200
                        )
                )
        )
    [1] => stdClass Object
        (
            [ID] => 5482877
            [Name] => Target
            [ShortCode] => mPEE_dLOAhE
            [ShortURL] => http://wild.link/mPEE_dLOAhE
            [Images] => Array
                (
                    [0] => stdClass Object
                        (
                            [ID] => 29
                            [Kind] => FEATURED
                            [Ordinal] => 1
                            [ImageID] => 29
                            [URL] => https://images.wildlink.me/wl-image/480b5c95d607854052a9f583c51ee1b8f168e640.jpeg
                            [Width] => 660
                            [Height] => 380
                        )
                    [1] => stdClass Object
                        (
                            [ID] => 713
                            [Kind] => LOGO
                            [Ordinal] => 10
                            [ImageID] => 714
                            [URL] => https://images.wildlink.me/wl-image/15b28fdfc04006589492a620fca2a4290547b394.jpeg
                            [Width] => 200
                            [Height] => 200
                        )
                )
        )
)

获取商家的佣金率数据

可以使用getMerchantCommissionRates调用获取给定商家的佣金率信息。一些商家只有一个佣金率,而另一些则有分段的一系列佣金率(有时按产品类别,有时按其他属性)。返回数据中的佣金率考虑了您同意的佣金分配(因此您看到的是Wildfire Systems提取其份额后的佣金金额)。一些佣金条款是百分比率,而另一些则是固定金额。在固定金额的情况下,将包括货币代码。目前,Wildlink不在此上下文中转换货币。Wildlink始终以美元支付,并在支付给您之前将货币转换为美元。当可用时,将标记默认佣金率,但请注意,并非所有商家都有指定的默认货币。

$singleMerchantCommissionRates = $wfClient->getMerchantCommissionRates(5477615);
var_dump($singleMerchantCommissionRates);

示例返回

Array
(
    [0] => stdClass Object
        (
            [ID] => 41
            [Name] => ESR merchant hotel
            [DisplayName] =>
            [Kind] => PERCENTAGE
            [Amount] => 3
            [IsDefault] =>
        )
)

获取所有商家(不包括已禁用的商家)的元数据

$merchantList = new MerchantList($wfClient);
while ($merchant = $merchantList->getCurrentMerchant()){
    var_dump($merchant);
    if ($merchantList->hasNextMerchant()){
        $merchantList->getNextMerchant();
    } else {
        break;
    }
}

示例返回

stdClass Object
(
    [ID] => 5520185
    [Name] => Prioritytireoutlet.com
    [Disabled] =>
    [Featured] =>
    [ShortCode] => 95gFufbQAgQ
    [ShortURL] => http://wild.link/95gFufbQAgQ
    [Images] => Array
        (
            [0] => stdClass Object
                (
                    [ID] => 3
                    [Kind] => FEATURED
                    [Ordinal] => 1
                    [ImageID] => 3
                    [URL] => https://images.wildlink.me/wl-image/a3a4df7b12404451fe3f2099122847e5dc3ed6b5.jpeg
                    [Width] => 660
                    [Height] => 380
                )
            [1] => stdClass Object
                (
                    [ID] => 808
                    [Kind] => LOGO
                    [Ordinal] => 1
                    [ImageID] => 809
                    [URL] => https://images.wildlink.me/wl-image/2fe289045e0794f3bcf7f3ae03d7850f5b51cf6c.jpeg
                    [Width] => 200
                    [Height] => 200
                )
        )
)

获取应用程序佣金详情列表(跨所有设备)

当您想要获取所有设备上的所有佣金时(即同步您的后端与Wildfire的),您可以使用此调用获取自给定日期以来的所有佣金记录变更。

$allCommissionsSince = $wfClient->getAppCommissionsSince('2018-07-01');
var_dump($allCommissionsSince);

示例返回

Array
(
    [0] => stdClass Object
        (
            [ID] => 4015
            [ApplicationID] => 3
            [MerchantID] => 5478747
            [DeviceKey] => D9F3D3DF-E2C5-43A0-9BA5-5F47EEB964EF
            [SaleAmount] => 319.3
            [Amount] => 0
            [Status] => DISQUALIFIED
            [EventDate] => 2018-02-17T09:07:46Z
            [CreatedDate] => 2018-04-05T20:35:30.710591Z
            [ModifiedDate] => 2018-07-03T23:05:19.385467Z
        )

    [1] => stdClass Object
        (
            [ID] => 4013
            [ApplicationID] => 3
            [MerchantID] => 5478049
            [DeviceKey] => 95276881-d08f-44b3-b871-641485c719a9
            [SaleAmount] => 118.93
            [Amount] => 5.9465
            [Status] => PAID
            [EventDate] => 2018-02-10T01:24:40Z
            [CreatedDate] => 2018-04-05T20:35:29.265713Z
            [ModifiedDate] => 2018-07-03T23:05:19.385467Z
        )

    [2] => stdClass Object
        (
            [ID] => 4010
            [ApplicationID] => 3
            [MerchantID] => 5477615
            [DeviceKey] => 17489795-4a7f-4773-b8d0-5c90d86ce88b
            [SaleAmount] => 6309.95
            [Amount] => 0
            [Status] => DISQUALIFIED
            [EventDate] => 2017-12-21T09:00:00Z
            [CreatedDate] => 2018-04-05T20:35:25.994872Z
            [ModifiedDate] => 2018-07-03T23:05:19.385467Z
        )

)

状态的可能值

  1. PENDING – 这是佣金记录的默认状态。Wildlink已检测到佣金,但尚未支付。这主要反映了退货期政策(商家将在退货期过后才支付佣金)。
  2. DISQUALIFIED – 对于某些商家,某些购买基于其条款被标记为不合格。这种情况有很多,并且根据商家而异。例如,Ticketmaster活动预售和大多数零售商的Apple电子产品。
  3. READY – Wildlink已从商家收到付款,在下一个月的支付周期中可用于支付给最终用户或合作伙伴公司。在撰写本文时,每月初进行支付。
  4. PAID – 已向个人用户或合作伙伴公司(在合作伙伴处理Wildlink和最终用户之间的支付的情况下)支付。

通过分页浏览佣金的其他方法

除了返回单个佣金数组外,您还可以使用CommissionList对象遍历每条记录。这的优势是内存占用更小,因为任何时候只有单个“页面”的结果被加载到内存中。返回的数据与getAppCommissionsSince方法调用相同,并接受相同的since_modified_date参数。

use WildlinkApi\CommissionList;

$commissionList = new CommissionList($wfClient, '2018-12-01');

while ($commission = $commissionList->getCurrentCommission()){
    var_dump($commission);
    if ($commissionList->hasNextCommission()){
        $commissionList->getNextCommission();
    } else {
        break;
    }
}

获取佣金摘要

当您想向用户显示收益的概述时(假设您正在将补偿传递给您的最终用户)您可以调用getCommissionSummary。

$commissionSummary = $wfClient->getCommissionSummary();
var_dump($commissionSummary);

示例返回

stdClass Object
(
    [PendingAmount] => 0.00
    [ReadyAmount] => 0.00
    [PaidAmount] => 0.00
)

获取佣金详情列表

如果您要将您的最终用户包括在Wildlink的佣金中,您可以使用此调用获取Wildlink了解的每个佣金的详细记录(包括每个佣金的状况),对于客户/设备(包括每个佣金的状况)。

$commissions = $wfClient->getCommissionDetails();
var_dump($commissions);

示例返回

Array (
    [0] => stdClass Object
        (
        "ID": 7455,
        "CommissionIDs": Array(
            7455,
            7456
        ],
        "Date": "2018-09-18T00:00:00Z",
        "Amount": "0.12",
        "Status": "PENDING",
        "Merchant": "AliExpress"
    ),
    [1] => stdClass Object
        (
        "ID": 7336,
        "CommissionIDs": Array(
            7336
        ),
        "Date": "2018-09-05T14:24:28Z",
        "Amount": "0.04",
        "Status": "DISQUALIFIED",
        "Merchant": "DressLily"
    )
)

获取点击统计

如果适当,您可以根据时间范围(按日、月或年)显示特定设备的总点击次数。此方法需要一个开始日期和结束日期的值(结束值是可选的)。

$clicks = $wfClient->getClickStatsByDay('2018-01-01');
var_dump($clicks);

示例返回

stdClass Object
(
   [2018-10-15T00:00:00Z] => 3
   [2018-10-16T00:00:00Z] => 12
)

创建 vanity URL(例如:http://wild.link/walmart/abc123

将 URL(产品页面、列表页面等)转换为带有嵌入式跟踪的 wild.link URL。

$vanityUrl = $wfClient->getVanityUrl('https://www.walmart.com/ip/VIZIO-24-Class-HD-720P-LED-TV-D24hn-G9/782959488');
var_dump($vanityUrl);

示例返回

stdClass Object
(
    [OriginalURL] => https://www.walmart.com/ip/VIZIO-24-Class-HD-720P-LED-TV-D24hn-G9/782959488
    [VanityURL] => http://wild.link/walmart/AMjFBg
)