"Creating default object from empty value" 客户 phone 和 Quickbooks 中的电子邮件 api 错误

"Creating default object from empty value" error for Customer phone and email in Quickbooks api

我一直在使用 intuit 的 Quickbooks Api 来连接管理面板。 当前仅用于从管理面板创建客户记录。我可以添加 姓名公司名称,但无法添加 Phone 和电子邮件详细信息。以下是代码:

function qb_insert($name,$company,$phone,$email){   
    $requestValidator = new OAuthRequestValidator(QB_accessToken,QB_accessTokenSecret,QB_consumerKey,QB_consumerSecret);
    $serviceType= IntuitServicesType::QBO;
    $serviceContext = new ServiceContext(QB_realmId, $serviceType, $requestValidator);
    $dataService = new DataService($serviceContext);

    $customerObj = new IPPCustomer(); 
    $customerObj->Name = $name; 
    $customerObj->CompanyName = $company; 
    $customerObj->GivenName = $name;
    $customerObj->DisplayName = $name;
    $customerObj->PrimaryEmailAddr->Address = $email;
    $customerObj->PrimaryPhone->FreeFormNumber = $phone;
    $resultingCustomerObj = $dataService->Add($customerObj);
    return $resultingCustomerObj;
}

如果你仔细看看,我一直在使用 PrimaryPhone, Phone,AlternatePhone, Mobile, PrimaryEmailAddr,但其中 none 有效。 正在创建仅包含 Name and Company name.

的客户

提前致谢。

此致, 阿伦

所以我不得不回答我自己的问题:P

我不容易找到这个。 我使用 Api 的查询仔细查看了 (SELECT * FROM Customer) 给出的输出,并得到以下内容:

...blah...blah "PrimaryPhone" :{ "FreeFormNumber" : 74114xxxxx } ...blah...blah

这就是我开始使用$customerObj->PrimaryPhone->FreeFormNumber的原因。

我在 API 代码中搜索了 FreeFormNumber 并找到了 IPPTelephoneNumber class 创建它的地方。

类似地 IPPEmailAddress class 用于电子邮件。

最后, 完成以下操作:

对于Phone

$customerObj->PrimaryPhone = new IPPTelephoneNumber(); $customerObj->PrimaryPhone->FreeFormNumber = $phone;

以及电子邮件

$customerObj->PrimaryEmailAddr = new IPPEmailAddress(); $customerObj->PrimaryEmailAddr->Address = $email;

PS: 诚恳请求提供API的大佬们,请提供相关的例子,不要一堆堆的DOCS!