我使用的是QBO IPP PHP SDK QuickBooks V3 API。错误是
"6000:[在处理您的请求时发生了业务验证错误,业务验证错误:此操作所需的某些内容已不可用。其他用户可能已将其删除。请刷新屏幕以查看当前信息。]">
6000:[在处理您的请求时发生了业务验证错误,业务验证错误:您一次只能添加或编辑一个名称。请重试
但当我通过相同的API获得客户详细信息时,我成功地获得了所有客户详细信息。
任何人都可以指引我。对不起,我忘了告诉你我用的是加拿大版的快速图书https://ca.qbo.intuit.com".
这是我为Add客户提供的示例代码,但错误对我来说仍然无法理解
我正在使用V3 API
$CustomerService=新QuickBooks_PP_Service_Customer((;
$Customer = new QuickBooks_IPP_Object_Customer();
$Customer->setTitle('MR');
$Customer->setGivenName('Abdul');
$Customer->setMiddleName('Hanan');
$Customer->setFamilyName('Cheema');
$Customer->setFullyQualifiedName('FullyQualifiedName cheema');
$Customer->setDisplayName('Abdul Hanan Cheema ' . mt_rand(0, 1000));
$Customer->setCompanyName('Seed Corporation');
$Customer->setPrintOnCheckName('PrintOnCheckName See');
$Customer->setActive('1');
$Customer->setDefaultTaxCodeRef('12');
$Customer->setTaxable('0');
$Customer->setJob('jobSee');
$Customer->setBillWithParent('0');
$Customer->setBalance('100');
$Customer->setBalanceWithJobs('0');
$Customer->setCurrencyRef('CAD');
$Customer->setPreferredDeliveryMethod('Email');
// $Customer->setJob('jobSee');
// Terms (e.g. Net 30, etc.)
$Customer->setSalesTermRef(4);
// Phone #
$PrimaryPhone = new QuickBooks_IPP_Object_PrimaryPhone();
$PrimaryPhone->setFreeFormNumber('860-532-0099');
$Customer->setPrimaryPhone($PrimaryPhone);
// Mobile #
$Mobile = new QuickBooks_IPP_Object_Mobile();
$Mobile->setFreeFormNumber('860-532-0099');
$Customer->setMobile($Mobile);
// Fax #
$Fax = new QuickBooks_IPP_Object_Fax();
$Fax->setFreeFormNumber('860-532-0099');
$Customer->setFax($Fax);
// Bill address
$BillAddr = new QuickBooks_IPP_Object_BillAddr();
$BillAddr->setLine1('Office#2 Ali Tower');
$BillAddr->setLine2('GUlburg3');
$BillAddr->setCity('Lahore');
$BillAddr->setCountrySubDivisionCode('PK');
$BillAddr->setPostalCode('44000');
$Customer->setBillAddr($BillAddr);
// Email
$PrimaryEmailAddr = new QuickBooks_IPP_Object_PrimaryEmailAddr();
$PrimaryEmailAddr->setAddress('support@consolibyte.com');
$Customer->setPrimaryEmailAddr($PrimaryEmailAddr);
if ($resp = $CustomerService->add($Context, $realm, $Customer))
{
print('Our new customer ID is: [' . $resp . '] (name "' . $Customer->getDisplayName() . '")');
}
else
{
print($CustomerService->lastError($Context));
}
提前感谢
对于此错误:
"6000:[在处理您的请求,业务验证错误:需要执行此操作不再可用。其他用户可能已将其删除。请刷新您的屏幕以查看当前信息。]">
你需要检查你所指的一切(SalesTerm、TaxCode(,并确保它们确实存在。其中一个没有。
对于此错误:
"6000:[在处理您的请求,业务验证错误:您只能添加或编辑一个名称一次。请再试一次。">
确保一次只添加/编辑一件事。
进行更新时,需要先进行读取,以获取实体的最新元数据和synctoken。然后您应该使用它来进行更新。完全或稀疏。怀疑您没有发送用于更新的Id或正确的同步令牌。请在此处粘贴您的请求/响应xml。
在应用层中,Employee、Customer和Vendor实体之间有一个锁,以确保唯一的名称约束。当您尝试使用并行线程修改/创建多个对象时,就会出现上述错误。请对以上3个名称实体依次调用API。如果您仍然面临任何错误,您可以使用相应的请求(和API请求ID(和响应XML来更新您的帖子。
感谢
我使用ItemRef来引用Customer,而不是AnyIntuitObject引用,例如销售条款引用、IncomeAccountRef等