"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!
我一直在使用 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!