PyXero 图书馆验证异常

2024-09-25 04:25:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用pyxeropython库为python3向xero添加付款。 我可以添加发票和联系人,但付款总是返回验证异常。 以下是我提交的数据:

payments.put([{'Amount': '20.00', 
               'Date': datetime.date(2016, 5, 25), 
               'AccountCode': 'abc123', 
               'Reference': '8831_5213', 
               'InvoiceID': '09ff0465-d1b0-4fb3-9e2e-3db4e83bb240'}])

xero的回应是:

^{pr2}$

Tags: 数据datetimedateput联系人发票amountpython3
1条回答
网友
1楼 · 发布于 2024-09-25 04:25:01

请注意:这个解决方案变成了pyxero内部的一个黑客,以获得我需要的结果。这对你来说可能不是最好的解决办法。在

pyxero为其生成的XML“付款.put“与xero文档中找到的“PUT Payments”XML结构不匹配。在

我首先更改了字典的结构,使在basemanager.py中生成的XML与文档中生成的XML相似

data = {
    'Invoice': {'InvoiceID': "09ff0465-d1b0-4fb3-9e2e-3db4e83bb240"},
    'Account': {"AccountID": "58F8AD72-1F2E-AFA2-416C-8F660DDD661B"},
    'Date': datetime.datetime.now(),
    'Amount': 30.00,
}
xero.payments.put(data)

但是这个错误仍然存在,所以我被迫开始在pyxero的中更改代码基地经理.py。在

基地经理.py在第133行,更改日期的格式:

^{pr2}$

收件人:

val = sub_data.strftime('%Y-%m-%d')

pyxero最初是在返回时间。这应该只是一个日期值-文档规定了格式。在

然后,在基地经理.py在第257行更改以下内容:

body = {'xml': self._prepare_data_for_save(data)}

收件人:

if self.name == "Payments":
    body = {'xml': "<Payments>%s</Payments>" % self._prepare_data_for_save(data)}
else:
    body = {'xml': self._prepare_data_for_save(data)}

请注意,为了使您能够首先创建付款,发票的“状态”必须设置为“已授权”。 另外,确保付款的“金额”不大于发票的“金额”。在

相关问题 更多 >