PHP code example of qixiangyun / sdk

1. Go to this page and download the library: Download qixiangyun/sdk library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

qixiangyun / sdk example snippets



�手动引入自动加载器
// 化 SDK
$sdk = SDK::create([
    'appKey' => 'your_app_key',
    'apiHost' => 'https://api.qixiangyun.com',
    'appSecret' => 'your_app_secret',
    'timeout' => 30,
    'enableCache' => true,
    'cacheDir' => __DIR__ . '/cache'
]);

// 2. 获取业务客户端(推荐使用便捷方法)
$invoiceClient = $sdk->getInvoice();

// 或者使用通用方法
// $invoiceClient = $sdk->getClient('invoice');

// 3. 调用 API
$result = $invoiceClient->queryZzsfpCy([
    [
        "fpdm" => "044031800104",
        "fphm" => "12345678",
        "kprq" => "2024-01-01",
        "je" => 1000.00
    ]
]);

print_r($result);

$sdk = SDK::create($config);

// 发票客户端
$invoiceClient = $sdk->getInvoice();

// 企业管理客户端
$orgClient = $sdk->getOrg();

// 账号管理客户端
$accountClient = $sdk->getAccount();

// 登录客户端
$loginClient = $sdk->getLogin();

// 税务申报客户端
$taxClient = $sdk->getTax();

// 个税客户端
$iitClient = $sdk->getIit();

// 办税人员管理客户端
$bsryglClient = $sdk->getBsrygl();

// 产品管理客户端
$productClient = $sdk->getProduct();

// 企业信息采集客户端
$orgInfoClient = $sdk->getOrgInfo();

// 消息客户端
$messageClient = $sdk->getMessage();

// 办税小号客户端
$phoneClient = $sdk->getPhone();

// 前台发票客户端
$qdfpClient = $sdk->getQdfp();

// 商品信息客户端
$spxxClient = $sdk->getSpxx();

// 客户信息客户端
$khxxClient = $sdk->getKhxx();

// 认证客户端
$rzClient = $sdk->getRz();

// 文件版式下载客户端
$sdFileClient = $sdk->getSdFile();

// 发票入账客户端
$fpruzClient = $sdk->getFpruz();

// 发票归集客户端
$gjClient = $sdk->getGj();

// 企业税务信息客户端
$orgTaxInfoClient = $sdk->getOrgTaxInfo();

// 企业税种客户端
$qysClient = $sdk->getQys();

// 生产经营所得客户端
$scjyClient = $sdk->getScjy();

// 社保客户端
$shbxClient = $sdk->getShbx();

// 海关客户端
$customsClient = $sdk->getCustoms();

// 出口退税客户端
$cktsClient = $sdk->getCkts();

// 企业采集客户端
$collectClient = $sdk->getCollect();

// 风险查询客户端
$riskClient = $sdk->getRisk();

// 企业洞察客户端
$insightClient = $sdk->getInsight();

// 政策法规客户端
$legislationClient = $sdk->getLegislation();

// 获取类型化响应
$response = $invoiceClient->queryZzsfpCy($params);

// 链式处理
$response
    ->then(function($data) {
        echo "查询成功\n";
        return processData($data);
    })
    ->catch(function($error, $statusCode) {
        echo "查询失败: " . $error . " (状态码: " . $statusCode . ")\n";
    })
    ->finally(function($response) {
        echo "操作完成\n";
    });

// 发票数据处理
$response->processInvoice(function($invoiceData) {
    echo "发票代码: " . $invoiceData['code'] . "\n";
    echo "发票金额: " . number_format($invoiceData['amount'], 2) . "\n";
    
    return $invoiceData;
});

// 企业数据处理
$response->processOrg(function($orgData) {
    echo "企业名称: " . $orgData['name'] . "\n";
    echo "统一社会信用代码: " . $orgData['creditCode'] . "\n";
    
    return $orgData;
});

// 先查询企业信息,然后根据企业信息查询发票
$orgClient->getOrgInfo(['aggOrgId' => $aggOrgId])
    ->processOrg(function($orgData) use ($invoiceClient) {
        if ($orgData['status'] === 'active') {
            return $invoiceClient->queryPtfpCy($invoiceParams);
        } else {
            echo "企业未激活,无法查询发票\n";
            return null;
        }
    })
    ->then(function($invoiceResponse) {
        if ($invoiceResponse) {
            return $invoiceResponse->processInvoice(function($invoiceData) {
                echo "企业关联发票: " . $invoiceData['number'] . "\n";
                return $invoiceData;
            });
        }
    });

// 类型安全的数据处理
$response->processProduct(function($productData) {
    // 确保数据类型正确
    $productId = (string)($productData['id'] ?? '');
    $price = (float)($productData['price'] ?? 0);
    $isActive = (bool)($productData['isActive'] ?? false);
    
    // 类型验证
    if (empty($productId)) {
        throw new InvalidArgumentException("产品ID不能为空");
    }
    
    return [
        'id' => $productId,
        'price' => $price,
        'isActive' => $isActive
    ];
});

// 推荐使用
$invoiceClient = $sdk->getInvoice();

// 或使用通用方法
// $invoiceClient = $sdk->getClient('invoice');

// 增值税发票查验
$result = $invoiceClient->queryZzsfpCy($params);

// 数电票查验
$result = $invoiceClient->queryDigitalInvoice($params);

$orgClient = $sdk->getOrg();

// 创建企业
$result = $orgClient->create($params);

// 查询企业列表
$result = $orgClient->list($params);

$accountClient = $sdk->getAccount();

// 创建账号
$result = $accountClient->create($params);

// 查询账号
$result = $accountClient->query($params);

$loginClient = $sdk->getLogin();

// 账号密码登录
$result = $loginClient->password($params);

// 短信验证码登录
$result = $loginClient->sms($params);

// 扫码登录
$result = $loginClient->qrcode($params);

$taxClient = $sdk->getTax();

// 提交申报
$result = $taxClient->submit($params);

// 查询申报结果
$result = $taxClient->query($params);

$iitClient = $sdk->getIit();

// 查询个税信息
$result = $iitClient->query($params);

// 提交个税申报
$result = $iitClient->submit($params);

$bsryglClient = $sdk->getBsrygl();

// 添加办税人员
$result = $bsryglClient->addBsyTask($params);

// 查询办税人员
$result = $bsryglClient->queryBsyTask($params);

$productClient = $sdk->getProduct();

// 订购产品
$result = $productClient->purchase($params);

// 查询订单
$result = $productClient->list($params);

$orgInfoClient = $sdk->getOrgInfo();

// 发起采集任务
$result = $orgInfoClient->beginTask($params);

// 查询采集结果
$result = $orgInfoClient->queryTask($params);

$messageClient = $sdk->getMessage();

// 获取通知
$result = $messageClient->getNotice($params);

// 标记已读
$result = $messageClient->markAsRead($params);

$phoneClient = $sdk->getPhone();

// 申请小号
$result = $phoneClient->createOrder($params);

// 绑定手机号
$result = $phoneClient->bind($params);

$qdfpClient = $sdk->getQdfp();

// 红字发票开具
$result = $qdfpClient->createRedInvoice($params);

// 查询发票
$result = $qdfpClient->queryInvoiceList($params);

$spxxClient = $sdk->getSpxx();

// 新增商品
$result = $spxxClient->addProduct($params);

// 查询商品
$result = $spxxClient->queryProductList($params);

$khxxClient = $sdk->getKhxx();

// 新增客户
$result = $khxxClient->addCustomer($params);

// 查询客户
$result = $khxxClient->queryCustomerList($params);

$rzClient = $sdk->getRz();

// 进项发票采集
$result = $rzClient->applyInputInvoiceCollect($params);

// 查询采集结果
$result = $rzClient->queryInputInvoiceResult($params);

$sdFileClient = $sdk->getSdFile();

// 下载文件
$result = $sdFileClient->download($params);

$fpruzClient = $sdk->getFpruz();

// 发票入账
$result = $fpruzClient->accounting($params);

$gjClient = $sdk->getGj();

// 发票归集
$result = $gjClient->collect($params);

$orgTaxInfoClient = $sdk->getOrgTaxInfo();

// 查询税务信息
$result = $orgTaxInfoClient->query($params);

$qysClient = $sdk->getQys();

// 查询税种信息
$result = $qysClient->query($params);

$scjyClient = $sdk->getScjy();

// 查询所得信息
$result = $scjyClient->query($params);

$shbxClient = $sdk->getShbx();

// 查询社保信息
$result = $shbxClient->query($params);

$customsClient = $sdk->getCustoms();

// 查询海关信息
$result = $customsClient->query($params);

$cktsClient = $sdk->getCkts();

// 出口退税
$result = $cktsClient->refund($params);

$collectClient = $sdk->getCollect();

// 企业采集
$result = $collectClient->collect($params);

$riskClient = $sdk->getRisk();

// 查询风险信息
$result = $riskClient->query($params);

$insightClient = $sdk->getInsight();

// 企业洞察分析
$result = $insightClient->analyze($params);

$legislationClient = $sdk->getLegislation();

// 查询政策法规
$result = $legislationClient->query($params);

use QixiangyunSDK\Exceptions\QixiangyunException;
use QixiangyunSDK\Exceptions\AuthTokenException;

try {
    $result = $client->method($params);
} catch (AuthTokenException $e) {
    // 认证错误
    echo "认证失败: " . $e->getMessage();
} catch (QixiangyunException $e) {
    // API 错误
    echo "API 错误: " . $e->getMessage();
    echo "错误码: " . $e->getCode();
    echo "响应数据: " . print_r($e->getResponseData(), true);
}

// 创建自定义客户端
class CustomClient extends BaseClient
{
    protected $clientName = 'custom';
    
    public function customMethod(array $params)
    {
        return $this->request('/custom/path', $params);
    }
}

// 注册自定义客户端
$sdk->getClientFactory()->registerClient('custom', CustomClient::class);

// 使用自定义客户端
$customClient = $sdk->getClient('custom');
$result = $customClient->customMethod($params);

// 更新 SDK 配置
$sdk->updateConfig([
    'timeout' => 60,
    'maxRetries' => 5
]);

// 获取 HTTP 客户端实例
$httpClient = $sdk->getHttpClient();

// 自定义请求
$response = $httpClient->request('GET', '/custom/path', $params);