Invoice.class.php 3.71 KB
<?php
/**
 * 发票接口调用类
 * User: liyifei2012it
 * Date: 18/3/5
 * Time: 17:22
 */

namespace VcySDK;

class Invoice
{
    /**
     * 发票接口调用类
     *
     * @var object
     */
    private $serv = null;

    /**
     * 发票申请接口
     * %s = {apiDomain}/b/{enumber}/{thirdIdentifier}
     *
     * @var string
     */
    const INVOICE_APPLY_URL = '%s/invoice/apply';

    /**
     * 发票删除接口
     * %s = {apiDomain}/b/{enumber}/{thirdIdentifier}
     *
     * @var string
     */
    const INVOICE_DELETE_URL = '%s/invoice/delete';

    /**
     * 发票详情接口
     * %s = {apiDomain}/b/{enumber}/{thirdIdentifier}
     *
     * @var string
     */
    const INVOICE_DETAIL_URL = '%s/invoice/detail';

    /**
     * 最大可开票金额接口
     * %s = {apiDomain}/b/{enumber}/{thirdIdentifier}
     *
     * @var string
     */
    const INVOICE_ENABLE_AMOUNT_URL = '%s/invoice/enable-amount';

    /**
     * 发票最近信息接口
     * %s = {apiDomain}/b/{enumber}/{thirdIdentifier}
     *
     * @var string
     */
    const INVOICE_LAST_INFO_URL = '%s/invoice/last-info';

    /**
     * 发票列表接口
     * %s = {apiDomain}/b/{enumber}/{thirdIdentifier}
     *
     * @var string
     */
    const INVOICE_LIST_URL = '%s/invoice/list';

    /**
     * 发票修改接口
     * %s = {apiDomain}/b/{enumber}/{thirdIdentifier}
     *
     * @var string
     */
    const INVOICE_UPDATE_URL = '%s/invoice/update';

    /**
     * 初始化
     *
     * @param Service $serv 接口调用类
     */
    public function __construct($serv)
    {

        $this->serv = $serv;
    }

    /**
     * 发票申请接口
     *
     * @param array $params 所需参数
     * @return boolean|multitype:
     */
    public function applyInvoice($params)
    {

        return $this->serv->postSDK(self::INVOICE_APPLY_URL, $params, 'generateApiUrlB');
    }

    /**
     * 发票删除接口
     *
     * @param string $params 所需参数
     * @return boolean|multitype:
     */
    public function deleteInvoice($params)
    {

        return $this->serv->postSDK(self::INVOICE_DELETE_URL, $params, 'generateApiUrlB');
    }

    /**
     * 发票详情接口
     *
     * @param array $params 所需参数
     * @return boolean|multitype:
     */
    public function fetchInvoice($params)
    {

        return $this->serv->postSDK(self::INVOICE_DETAIL_URL, $params, 'generateApiUrlB');
    }

    /**
     * 最大可开票金额接口
     *
     * @return boolean|multitype:
     */
    public function fetchEnableAmount()
    {

        return $this->serv->postSDK(self::INVOICE_ENABLE_AMOUNT_URL, [], 'generateApiUrlB');
    }

    /**
     * 发票最近信息接口
     *
     * @return boolean|multitype:
     */
    public function fetchLastInvoice()
    {

        return $this->serv->postSDK(self::INVOICE_LAST_INFO_URL, [], 'generateApiUrlB');
    }

    /**
     * 发票列表接口
     *
     * @param array $condition 查询条件数据
     * @param mixed $orders    排序字段
     * @param int   $page      当前页码
     * @param int   $perpage   每页记录数
     *
     * @return boolean|multitype:
     */
    public function fetchInvoiceList($condition = [], $page = 1, $perpage = 30, $orders = [])
    {

        // 查询参数
        $condition = $this->serv->mergeListApiParams($condition, $orders, $page, $perpage);
        return $this->serv->postSDK(self::INVOICE_LIST_URL, $condition, 'generateApiUrlB');
    }

    /**
     * 发票修改接口
     *
     * @param array $params 所需参数
     * @return boolean|multitype:
     */
    public function updateInvoice($params)
    {

        return $this->serv->postSDK(self::INVOICE_UPDATE_URL, $params, 'generateApiUrlB');
    }
}