superbrave / partnerize-bundle
一个用于与Partnerize API通信的Symfony扩展包。
Requires
- php: ^7.2
- guzzlehttp/guzzle: ^6.5
- symfony/config: ^3.4||^4.0||^5.0
- symfony/dependency-injection: ^3.4||^4.0||^5.0
- symfony/http-kernel: ^3.4||^4.0||^5.0
- symfony/property-access: ^3.4||^4.0||^5.0
- symfony/property-info: ^3.4||^4.0||^5.0
- symfony/serializer: ^3.4||^4.0||^5.0
Requires (Dev)
- phpunit/php-code-coverage: ^8.0
- phpunit/phpunit: ^9.1
- superbrave/coding-standards: ^0.2.0
- symfony/phpunit-bridge: ^3.4||^4.0||^5.0
This package is auto-updated.
Last update: 2024-09-23 16:11:34 UTC
README
一个用于与Partnerize API通信的Symfony扩展包。
概述
提供发送、批准和拒绝Partnerize中转换的方法(不是全部)。
设置
安装
使用此包与所有Symfony扩展包类似。
步骤 1.
打开命令行,进入您的项目目录,并执行以下命令以下载此扩展包的最新版本
$ composer require superbrave/partnerize-bundle
此命令要求您全局安装Composer,如Composer文档的安装章节中所述。
步骤 2.
然后,通过将其添加到项目app/AppKernel.php
文件中注册的扩展包列表来启用扩展包。
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new Superbrave\PartnerizeBundle\SuperbravePartnerizeBundle(), ); // ... } // ... }
步骤 3.
现在,您可以将扩展包的配置添加到您的应用程序中。如果您正在使用Symfony ^4.0,只需将superbrave_partnerize.yml
添加到您的包文件夹中,并填写以下配置值
superbrave_partnerize: application_key: 'YOUR_APPLICATION_KEY' user_api_key: 'YOUR_USER_API_KEY' campaign_id: 'YOUR_CAMPAIGN_ID' base_uri: (optional, default 'https://api.partnerize.com/') tracking_uri: (optional, default 'https://prf.hn/conversion/')
用法
转换
创建
public function createConversion(Sale $sale): string;
您可以使用此扩展包通过Partnerize的API创建转换。`createConversion`方法以一个`Sale`对象作为其参数。此`Sale`对象接受一个`Item`对象的数组,这些对象是正在销售的产品。
`createConversion`方法返回在Partnerize中创建的转换的`conversionId`。
批准
public function approveConversion(string $conversionId): Job;
一旦您的应用程序一侧批准了转换,您可以使用`approveConversion`方法在Partnerize中批准它。此方法只需要`createConversion`方法返回的`conversionId`。
`approveConversion`方法返回一个`Job`对象。
拒绝
public function rejectConversion(string $conversionId, string $reason): Job;
如果您想拒绝一个转换,可以使用`rejectConversion`方法。向该方法提供转换的`conversionId`和拒绝的理由。
`rejectConversion`方法返回一个`Job`对象。
作业
`Job`是一个包含Partnerize端正在执行的工作的数据的对象。创建、批准、拒绝转换将返回该`Job`对象。它会告诉您已推送的当前`status`。
更新
public function getJobUpdate(string $id): Job;
您可以通过调用`getJobUpdate`方法来获取`Job`的更新,此方法仅接受一个参数:您之前收到的`Job`中的`id`。因此,建议在推送内容到Partnerize后将其保存到某处。
此方法将返回您请求的`Job`对象。
响应
public function getJobResponse(string $id): Response;
一旦更新告诉您`Job`的`status`已完成,您可以通过调用`getJobResponse`方法检索`Response`。此方法再次仅接受`jobId`作为第一个参数。
此方法将返回一个`Response`对象,其中包含`Job`执行工作后返回的任何`errors`和/或`conversionItems`。
示例
如果您的应用程序中启用了自动装配,则可以将Partnerize客户端自动装配到一个类中。
class PartnerizeHandler { private $client; public function __construct(Superbrave\PartnerizeBundle\Client\PartnerizeClient $client) { $this->client = $client; } public function sendConversionToPartnerize(): void { $item = new Superbrave\PartnerizeBundle\Model\Item('yourCategory', 1 /* quantity */); $item->setProductBrand('productBrand'); $item->setProductName('productName'); $item->setProductType('productType'); $item->setSku('productSku'); $item->setValue(10.00); $sale = new Superbrave\PartnerizeBundle\Model\Sale('yourClickReference', 'yourConversionReference'); $sale->setConversionTime(new \DateTime()); $sale->setCountry('NL'); $sale->setCurrency('EUR'); $sale->setCustomerReference('customer123456') $sale->setCustomerType(Superbrave\PartnerizeBundle\Model\Sale::CUSTOMERTYPE_NEW); $sale->setVoucher('yourVoucherCode'); $sale->addItem($item); $conversionId = $this->client->createConversion($sale); $job = $this->client->approveConversion($conversionId); if ($job->getStatus() === Superbrave\PartnerizeBundle\Model\Job::STATUS_COMPLETE) { $response = $this->client->getJobResponse($job->getJobId()); // Use $response->getErrors() and $response->getErrorsCount() to check for any errors // Use $response->getConversionItems() to get the conversion that was approved, if it is // empty your conversion was already approved (or rejected). } else { // Wait some time and check again with getJobUpdate() } } }
API
如果您需要更多信息或想为此客户端做出贡献,请访问Partnerize API 文档。
许可证
此软件包受MIT许可证保护。请参阅软件包中的完整许可证。