【发布时间】:2017-10-31 22:11:28
【问题描述】:
我正在尝试使用 Quickbooks PHP SDK 创建采购订单并不断收到无效/缺少参数错误或可能是错误 ID。
我的参数基于 Quickbooks API Explorer。在采购订单的“创建”演示下,有一个选项可以生成一些默认的 json/xml。我认为这会给我所需的最低参数。
所以在我的代码中,我使用这些参数创建了一个采购订单数组并组成了值。但无法弄清楚哪里出了问题或遗漏了什么。
我看到的几个 PHP QuickBooks SDK 采购订单示例使用的是 Oauth 1.0,因此我的 APP 使用 Oauth 2.0,因此不值得花时间玩它们
错误
状态码是:400 帮助程序消息是:无效的身份验证/错误请求强文本(得到 400,预期 HTTP/1.1 20X 或重定向)响应消息是:无效的参考 IdInvalid 参考 ID:你的东西尝试使用已被禁用。检查包含客户、客户、项目、供应商或员工的字段。
QUICKBOOKS API Explorer 中的 SAMPLE JSON(来自应用沙箱的数据)
{
"Line": [{
"Id": "1",
"Amount": 25.0,
"DetailType": "ItemBasedExpenseLineDetail",
"ItemBasedExpenseLineDetail": {
"CustomerRef": {
"value": "3",
"name": "Cool Cars"
},
"BillableStatus": "NotBillable",
"ItemRef": {
"value": "38",
"name": "Garden Supplies"
},
"UnitPrice": 25,
"Qty": 1,
"TaxCodeRef": {
"value": "NON"
}
}
}],
"VendorRef": {
"value": "41",
"name": "Hicks Hardware"
},
"APAccountRef": {
"value": "33",
"name": "Accounts Payable (A/P)"
},
"TotalAmt": 25.0
}
Quickbooks.php(仅重要部分)
$purchaseOrder = PurchaseOrder::create([
"Line" =>[
[
"Id" =>"0",
"Amount" => 25.0,
"DetailType" => "ItemBasedExpenseLineDetail",
"ItemBasedExpenseLineDetail"=>
[
"CustomerRef"=>
[
"value"=>"3",
"name"=>"Cool Cars"
],
"BillableStatus"=> "NotBillable",
"ItemRef"=>
[
"value"=> "38",
"name"=> "Garden Supplies"
],
"UnitPrice"=> "25",
"Qty"=>"1",
"TaxCodeRef"=>
[
"value"=> "NON",
]
]
]
],
"VendorRef"=>
[
"value"=>"41",
"name"=>"Hicks Hardware"
],
"APAccountRef"=>
[
"value"=>"33",
"name"=>"Accounts Payable (A/P)"
],
"TotalAmt"=> 25.0
]);
$resultingpurchaseOrder = $dataService->Add($purchaseOrder);
$error = $dataService->getLastError();
if ($error != null) {
echo "The Status code is: " . $error->getHttpStatusCode() . "\n";
echo "The Helper message is: " . $error->getOAuthHelperError() . "\n";
echo "The Response message is: " . $error->getResponseBody() . "\n";
} else {
var_dump($resultingpurchaseOrder);
}
【问题讨论】:
标签: php oauth-2.0 quickbooks-online purchase-order