为了账号安全,请及时绑定邮箱和手机立即绑定

使用 php Xero api 在 Xero 中添加附件

使用 php Xero api 在 Xero 中添加附件

PHP
犯罪嫌疑人X 2023-04-28 14:24:05
谁能帮助我使用官方(非 calcanai)PHP SDK 将 pdf 添加到 Xero 发票。我与 oAuth2 相关联并且之前创建了草稿发票。然后我将发票更新为 Authorized 并尝试向发票添加附件。在这一点上我没有任何运气,附件已发送但返回时为空。这些文档一点用处都没有,也没有给出任何添加附件甚至最小字段的示例。所以这就是我所拥有的:...        $attachments = $apiResponse->getInvoices()[0]->getAttachments();        $attachment = new XeroAPI\XeroPHP\Models\Accounting\Attachment;        $attachment->setFileName( $filename )            ->setIncludeOnline( true )            ->setMimeType( 'application/pdf' );        $attachments[] = $attachment;        $apiResponse->getInvoices()[0]->setAttachments( $attachments );        $apiResult = $accountingApi->updateOrCreateInvoices( $xeroTenantId, $apiAuth );            if ( !$apiResult->getInvoices()[0]->getHasAttachments() ) {                $errors[] = 'Pdf file was not added to Xero.';            }            $errorList = array();            $errList = $apiResult->getInvoices()[0]->getValidationErrors()[0];            if ( !is_null( $errList ) ) {                $errorList = $errList;            }            foreach ( $errorList as $err ) {                $errors[] = $err->getMessage();            }            if ( count( $errors ) == 0 ) {                $result['message'] = 'New Invoice Authorised: ' . $xeroInvoice->getReference();                $result['apiResult'] = $apiResult;                $result['success'] = true;            } else {                $result['message'] = print_r( $errors );                $result['success'] = false;            }...有任何想法吗?
查看完整描述

1 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

添加附件需要两次 API 调用。


// 创建或获取您的发票 ID,然后创建附件


    $invoices = $apiInstance->getInvoices($xeroTenantId);                       

    $guid = $invoices->getInvoices()[0]->getInvoiceId();


    // file in the same dir.        

    $filename = "./helo-heros.jpg";

    $handle = fopen($filename, "r");

    $contents = fread($handle, filesize($filename));

    fclose($handle);


    $result = $apiInstance->createInvoiceAttachmentByFileName($xeroTenantId,$guid,"helo-heros.jpg",$contents);



查看完整回答
反对 回复 2023-04-28
  • 1 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信