【问题标题】:Create a contact in Xero and get its contact Id using php api (oauth2)在 Xero 中创建联系人并使用 php api (oauth2) 获取其联系人 ID
【发布时间】:2020-05-22 12:44:33
【问题描述】:

刚刚学习 Xero API (php),但我不确定如何继续。总的来说,这些文档非常好。我已经成功创建了 oauth2 集成,并且连接没有问题(即使对于多个组织/租户),我能够在 Xero 中获取现有联系人,但我现在需要创建一个新联系人(我有这个联系人的名字- 叫她 Jane Doe)然后我希望用这个新的 Contacts 联系人 ID 更新我的数据库记录。

所以文档有点混乱,但看看我认为我可以使用的 php api:

$response = $accountingApi->setContacts( $xeroTenantId, '{"Name": "Jane Doe"}' );

这是否是正确的方法(其中 $accountingApi 在循环早期的调用中定义并已连接)?有没有人举例说明如何将新联系人添加到 Xero 并返回这个新联系人的contactId?

文档没有说明添加新联系人后返回什么(如果有)响应。

最后与此有些相关,我的一些联系人在多个关联的组织中,这些联系人是否具有相同的 clientID,或者我需要以某种方式为每个关联的组织定义一个?

提前致谢

附加

github 上的 api 文档有这个 sn-p:

try {
            $person = new XeroAPI\XeroPHP\Models\Accounting\ContactPerson;
            $person->setFirstName("John")
                ->setLastName("Smith")
                ->setEmailAddress("john.smith@24locks.com")
                ->setIncludeInEmails(true);

            $arr_persons = [];
            array_push($arr_persons, $person);

            $contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
            $contact->setName('FooBar')
                ->setFirstName("Foo")
                ->setLastName("Bar")
                ->setEmailAddress("ben.bowden@24locks.com")
                ->setContactPersons($arr_persons);

            $arr_contacts = [];
            array_push($arr_contacts, $contact);
            $contacts = new XeroAPI\XeroPHP\Models\Accounting\Contacts;
            $contacts->setContacts($arr_contacts);

            $apiResponse = $accountingApi->createContacts($xeroTenantId,$contacts);
            $message = 'New Contact Name: ' . $apiResponse->getContacts()[0]->getName();
        } catch (\XeroAPI\XeroPHP\ApiException $e) {
            $error = AccountingObjectSerializer::deserialize(
                $e->getResponseBody(),
                '\XeroAPI\XeroPHP\Models\Accounting\Error',
                []
            );
            $message = "ApiException - " . $error->getElements()[0]["validation_errors"][0]["message"];
        }

我只需要 Xero 上的名称(所有其他详细信息都在我的链接应用程序中)并获取 contactId。

【问题讨论】:

    标签: php xero-api


    【解决方案1】:

    好的,我已经查看了我要使用的文档:

                    $contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
                    $contact->setName('Jane Doe');
                    $arr_contacts = [];
                    array_push($arr_contacts, $contact);
                    $contacts = new XeroAPI\XeroPHP\Models\Accounting\Contacts;
                    $contacts->setContacts($arr_contacts);
    
                    $apiResponse = $accountingApi->createContacts($xeroTenantId,$contacts);
                    //$message = 'New Contact Name: ' . $apiResponse->getContacts()[0]->getName();
                    $contactId = $apiResponse->getContacts()[0]->getContactId();
    
    

    【讨论】:

    • 当我创建一个新联系人时,我会像您一样查看响应,其中包含新联系人的 Xero ID。发票、付款、贷项通知单也是如此,响应始终包含您刚刚创建的新“事物”的 ID。事实上,如果您发送发票,您将获得刚刚发送的所有发票详细信息,以及发票收/发人的联系方式。我不使用 PHP,所以我不能说你的方法是否正确,但如果它提供了正确的信息,一切都很好。
    猜你喜欢
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多