我正在开发一个项目,需要将 Xero API 中的付款发票状态更新为“VOIDED”并删除关联的付款信息。但是,当我尝试删除付款信息时,遇到“403 Forbidden”错误。确切的错误消息是:
[403] 客户端错误:POST https://api.xero.com/api.xro/2.0/Payments/1b3b9ef2-dfb4-43d8-ba5b-435cd5cee8b4 导致 403 Forbidden 响应。
我已检查我的 Xero API 凭据,它们似乎正常。我想知道是否可能缺少特定权限或配置来执行删除操作。
有人在 Xero API 中遇到过类似的问题吗?如何解决此“403 Forbidden”错误并成功删除 Xero API 中的付款信息?任何见解或建议将不胜感激。谢谢你。
if($contract->THIRD_PARTY_SYNC ==1){
$apiInvoicesWithHttpInfoResponse = $apiInstance->getInvoicesWithHttpInfo($xeroTenantId, null, 'InvoiceNumber=="' . $contract->CONTRACT_NO . '"');
$xero_invoice_Response = $apiInvoicesWithHttpInfoResponse[0]->getInvoices()[0];
$apiInstance = self::minuteFlowLimitingProcessing($apiInvoicesWithHttpInfoResponse,$xeroId,$apiInstance);
}
if ($status == \XeroAPI\XeroPHP\Models\Accounting\Invoice::STATUS_PAID && !empty($filteredPayment)) {
$status = \XeroAPI\XeroPHP\Models\Accounting\Invoice::STATUS_AUTHORISED;
} elseif ($status == \XeroAPI\XeroPHP\Models\Accounting\Invoice::STATUS_PAID && $xero_invoice_Response ==null) {
$status = \XeroAPI\XeroPHP\Models\Accounting\Invoice::STATUS_AUTHORISED;
}
$xero_invoice->setStatus($status);
if($status =='VOIDED' && isset($xero_invoice_Response) &&method_exists($xero_invoice_Response, 'getPayments')){
$payments = $xero_invoice_Response->getPayments();
if (!empty($payments)) {
$paymentId = $payments[0]->getPaymentID();
$PaymentDelete = new \XeroAPI\XeroPHP\Models\Accounting\PaymentDelete;
$deletePayment = $apiInstance->deletePayment($xeroTenantId, $paymentId,$PaymentDelete);
}
}
我正在使用 API Explorer 的 Xero Accounting API - 付款 - 删除 Pyament。 make request 操作后没有任何反应。
我认为这个问题目前是Xero方面造成的。我们有 2 个 .net 框架项目一直在调用 Xero.NetStandard.OAuth2.Api.AccountingApi.DeletePaymentAsync 函数,直到今天没有任何问题。我们现在从这两个项目中收到 403 错误。他们的文档没有更新或更改。 https://developer.xero.com/documentation/api/accounting/ payments#POST