digfish/ivx-api2-php

使用基于JSON的API 2.0实现的InvoiceXpress API的PHP客户端

2.0 2017-10-02 11:28 UTC

This package is auto-updated.

Last update: 2024-09-16 04:02:34 UTC


README

它只是一个简单的PHP包装器,用于通过InvoiceXpress API进行请求。它是原始WidgiLabs/InvoiceXpressRequest-PHP-API的分支,由nunomorgadinho编写。

与现在以JSON格式原生响应的新API版本2.0兼容。

如果代码可能非常低级,让你感到不耐烦,那么在看过它之后,如果你和我一样是Laravel的粉丝,我建议你看看invoicexpress-api,这是rpsimao编写的。

如果你打算在你的项目中使用此代码,以下是一些示例。

以下类扩展了InvoiceXpressRequest.php中的类

use digfish\ivx_api2_php\InvoiceXpressRequest;

<?php class MyInvoiceXpressApi extends InvoiceXpressRequest
{
    public static function init($domain, $token)   {
        parent::init($domain, $token);
    }

    public function __construct($method) {
        self::init(IVX_DOMAIN,IVX_TOKEN);
        parent::__construct($method);
    }

    public function invoke($args = array(), $debug = false)    {
        $this->post($args);
        echo "** Invoking {$this->_method} **\n ";
        $response = $this->getResponse();
        $this->request();

        if (!$this->success()) {
            echo "Something got wrong!\n";
            echo "ERRORS:\n";
            var_dump($this->getError());
        }
        return $response;
    }
}

你应该已经为IVX_DOMAINIVX_TOKEN分配了值。例如,如果你将你的公司名称命名为myFirm,你应该使用该名称。IVX_TOKEN是你可以在InvoiceXpress后台办公室的账户 >> 集成 >> API中获得API密钥。

然后,将它们分配给

  define('IVX_DOMAIN','myFirm');
  define('IVX_TOKEN','--- the API key with 40 chars here ----');

您可以将这两行放在一个单独的文件中,并赋予适当的权限,以确保它们不是全球可读的,并将其包含在上面的示例代码文件的头部。

然后,要调用您的新类以获取数据,例如列出发票,您可以这样做

  $api = new MyInvoiceXpressApi ( 'invoices.list' );
  $response = $api->invoke($args);

$args是一个关联PHP数组,其中包含您传递给API的参数,例如页面号

 $args['page'] = 3;

API响应应该在$response变量中,其中包含PHP数组形式的发票数据。

一些功能尚未实现

只有列出和处理发票、客户以及访问发票项目的方法可用。尚未实现使用其他事物(如报价、指南、采购订单、序列、税费和账户)的方法。一些需要通过JSON作为请求(并且不使用HTTP GET方法)传递参数到API服务器的方

实现项目

查看ivxapi项目,该项目提供了使用此库的示例用例以及单元测试。