amattu2/carfax-wrapper

一个CARFAX车辆历史报告助手类。提供向CARFAX VHR发送报告、解码车牌号到VIN、以及获取CARFAX存储的维修历史数据的功能。

v1.0.3 2024-05-12 16:49 UTC

This package is auto-updated.

Last update: 2024-09-12 17:31:45 UTC


README

这是一个CARFAX车辆历史报告、QuickVIN和维修历史检查集成工具包。它提供以下接口以实现以下结果:

  • 报告DMS/SMS车辆维修票据历史记录
  • 执行快速VIN搜索
  • 执行搜索历史检查

通过专有API和集成流程实现。使用此基于PHP的工具包需要现有的CARFAX服务数据传输便利协议,并依赖于非公开订阅的API密钥。

使用方法

安装与设置

composer require amattu2/carfax-wrapper
require_once "vendor/autoload.php";

// see examples/..

注意:对于/examples中的示例,必须将config.ini.example重命名为config.ini,并使用您的CARFAX凭据进行更新。

FTP

这是一个向CARFAX VHR系统报告维修数据的助手类。它极大地简化了从专有DMS/SMS系统实施CARFAX车辆历史报告所需的开发人员负载。

构造函数

使用构造函数初始化类组件

$wrapper = new CARFAX\FTP();
/**
 * Class Constructor
 *
 * @param string $username CARFAX FTP username
 * @param string $password CARFAX FTP password
 * @param ?string $partner_name CARFAX Partner Name
 * @param ?string $type Data Report Type ("HIST" or "PROD")
 * @param ?DateTime $date Data Report Date
 * @throws None
 * @author Alec M.
 */
public function __construct(string $username, string $password, string $partner_name = "", string $type = "PROD", \DateTime $date = null);

write(array $data, $handle = null) : bool

将单个记录写入导出文件。请注意:此函数不验证字段值。它只写入提供的内容。您的类实现需要验证维修订单字段值。这仅确保字段存在于数组中。

$success = $wrapper->write([
  /* See class HEADER_FIELDS for a list of fields that are REQUIRED */
]);

writeAll(array $data) : int

将维修订单数组写入报告文件。这是对write()方法的效率包装,并始终保持文件句柄。如果您能够一次性写入大量的维修订单,请使用此方法。请注意:此函数不验证字段值。它只写入提供的内容。您的类实现需要验证维修订单字段值。这仅确保字段存在于数组中。

$successes = $wrapper->writeAll(
  [
    [
      /* Repair order record */
    ],
    [
      /* Repair order record */
    ],

    // ...
  ]
);

upload() : bool

将生成的记录提交到CARFAX FTP端点。

$wrapper->upload();

cleanUp() : bool

这是一个完全可选的函数,将删除本地服务器上的维修订单文件。应该在将其上传到FTP服务器后调用此函数。

$isCleaned = $wrapper->cleanUp();

getTotalRecords() : int

这返回写入报告文件的维修订单总数。不包括标题行。

$numRecords = $wrapper->getTotalRecords();

getFilePath() : ?string

如果文件存在,则返回报告文件的完全限定路径。

getFileName() : ?string

如果存在,则返回报告文件的文件名。

ServiceHistory

这是一个用于通过车辆VIN从CARFAX获取维修历史数据的完全静态类。

setLocationId(string $locationId) : void

更新当前实例的Location ID。这是在账户设置时由CARFAX提供的。

CARFAX\ServiceHistory::setLocationId("exampleLOC");

setProductDataId(string $productDataId) : void

更新当前类实例的产品数据ID。它与API密钥相当,是在账户设置时由CARFAX定义的。

CARFAX\ServiceHistory::setProductDataId("exampleProductDataId");

get(string $VIN) : array

这是实际公开用于通过VIN号获取车辆历史的函数。如果没有设置locationId或productDataId,将会抛出错误。其他所有内容都安全,包括CARFAX API失败。该函数始终返回一个数组或抛出错误。

如果记录(概述或历史)没有有效的

  • 里程表,它将等于 0
  • 日期,它将等于 NULL
$data = CARFAX\ServiceHistory::get("1G1GCCBX3JX001788");
简化的示例响应
{
  "Decode": {
    "VIN": "1G1GCCBX4JX001298",
    "Year": "2011",
    "Make": "CADILLAC",
    "Model": "LUXURY",
    "Trim": "",
    "Driveline": ""
  },
  "Overview": [
    {
      "Name": "Tire rotation",
      "Date": "12/24/2013",
      "Odometer": 42185
    },
    {
      "Name": "Emissions test",
      "Date": "04/20/2021",
      "Odometer": 127005
    },
    {
      "Name": "Battery Replacement",
      "Date": "11/21/2019",
      "Odometer": 112682
    },
  ],
  "Records": [
    {
      "Date": "01/12/2011",
      "Odometer": 5,
      "Services": [
        "Vehicle serviced",
        "Pre-delivery inspection completed",
        "Window tint installed",
        "Vehicle washed/detailed",
        "Tire condition and pressure checked",
        "Nitrogen fill tires",
        "Anti-theft/keyless device/alarm installed",
        "Safety inspection performed"
      ],
      "Type": "Service"
    },
    {
      "Date": null,
      "Odometer": 92500,
      "Services": [
        "Title issued or updated",
        "Registration issued or renewed",
        "Passed safety inspection",
        "Vehicle color noted as Brown"
      ],
      "Type": "Service"
    },
    {
      "Date": "06/25/2021",
      "Odometer": 0,
      "Services": [
        "Manufacturer Safety recall issued",
        "NHTSA #21V573",
        "Recall #N213240870",
        "Status: Remedy Available"
      ],
      "Type": "Recall"
    }
  ]
}

注意:请参阅servicehistory-get.php中的示例。

QuickVIN

QuickVIN Plus类是CARFAX QuickVIN Plus解码API的包装器。它将车牌号加州转换成带有VIN解码的VIN号。这是一个静态类,不需要实例化。

setLocationId(string $locationId): void

更新当前实例的Location ID。这是在账户设置时由CARFAX提供的。

CARFAX\QuickVIN::setLocationId("exampleLOC");

setProductDataId(string $productDataId): void

更新当前类实例的产品数据ID。它与API密钥相当,是在账户设置时由CARFAX定义的。

CARFAX\QuickVIN::setProductDataId("exampleProductDataId");

decode(string $plate, string $state, ?string $VIN = null): ?SimpleXMLElement

执行车牌号加州到VIN解码。如果解码成功,将返回一个SimpleXMLElement对象。如果解码失败,将返回NULL

$xml = CARFAX\QuickVIN::decode("HELLO", "VA");

注意:请参阅quickvin-decode.php中的示例。

需求 & 依赖

  • PHP 7.4+
  • SimpleXML
  • cURL