问题描述
我正在尝试仅使用 QBXML 的付款金额、日期和付款方式添加客户付款(接收付款 qbxml),但我从网络连接器收到以下错误
QuickBooks 在解析提供的 XML 文本流时发现错误
我的 QBXML
<?xml version="1.0" encoding="utf-8"?><?qbxml version="12.0"?>
<QBXML>
<QBXMLMsgsRq onError="continueOnError">
<ReceivePaymentAddRq>
<ReceivePaymentAdd>
<CustomerRef>
<ListID>8000254C-1444671234</ListID>
</CustomerRef>
<TxnDate>2021-05-21</TxnDate>
<RefNumber>2</RefNumber>
<TotalAmount>100</TotalAmount>
<PaymentMethodRef><FullName>Cash</FullName></PaymentMethodRef>
</ReceivePaymentAdd></ReceivePaymentAddRq></QBXMLMsgsRq></QBXML>
我没有在这里添加,因为我只想保存对客户的付款,而不管发票是什么 必须加吗?? 我们可以使用receivepayment qbxml 仅将针对客户的付款保存到quickbooks 中吗?
解决方法
该 xml 无效。靠近这条线:
<PaymentMethodRef><FullName>Cash<FullName/></PaymentMethodRef>
有一个开始标记 <FullName>
但不是结束标记。取而代之的是一个空元素 <FullName/>
如果将其更正为 </FullName>
,则 xml 变得有效。
谢谢你们的帮助,但我得到了解决我的问题的方法。我读到,在我的情况下,“使用 IsAutoApply 标志而不是 AppliedToTxnAdd。此标志允许 QuickBooks 接收付款,而无需将其应用于特定交易 如果 IsAutoApply 为 false,QuickBooks 会收到付款,但不会将其应用于任何未完成的交易。 QuickBooks 创建的信用将出现在客户工作的下一笔交易中。” 所以我在 qbxml 中使用了 false 如下:
interface IRoute {
path: string;
component?: React.ComponentType<any> | React.ComponentType<any> | React.ReactElement<any> | null;
async?: Promise<any>;
onEnter?: LifecyclePropsType;
**beforeExit?: LifecyclePropsType**;
onParamsChange?: LifecyclePropsType;
childRoutes?: { [key: string]: any };
}