我们正在通过PHP Xero API创建超额付款。在某些情况下,超额付款会被复制。下面是我们正在使用的代码:
<?php
$endpoint = 'https://api.xero.com/api.xro/2.0/BankTransactions';
$headers = array(
"Content-Type: application/json",
"Xero-tenant-id: " . $xero_access['tenant_id'],
"Authorization: Bearer " . $xero_access['token'],
);
$postFields = array(
"Type" => "RECEIVE-OVERPAYMENT",
'Contact' => ['ContactID' => $contactID],
'BankAccount' => ['accountID' => $xero_settings['account_id']],
'LineAmountTypes' => 'NoTax',
'LineItems' => [0 => [
'Description' => 'Customer Credit',
'LineAmount' => $price
]]
);
try {
$ch = @curl_init();
@curl_setopt($ch, CURLOPT_URL, $endpoint);
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
@curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
@curl_setopt($ch, CURLOPT_POST, 1);
@curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postFields, JSON_PRETTY_PRINT));
$response = @curl_exec($ch);
$status_code = @curl_getinfo($ch, CURLINFO_HTTP_CODE);
error_log($status_code);
error_log($response);
} finally {
@curl_close($ch);
}
?>
我不太清楚为什么交易被复制,或者即使是网络问题,或者上面的代码中的一些东西。
是否有办法使这些API调用唯一,并确保一个请求不会被发送两次?
谢谢
1条答案
按热度按时间w8rqjzmb1#
您能否提出一个关于Xero Support的案例,并包括:您的客户ID、连接租户的名称、重复呼叫的日期和时间(以及您所在的时区)、超额付款的详细信息,例如联系人姓名、日期和金额