QBXML 接收付款显示 Web 连接器中的解析错误 - php Devkit

问题描述

我正在尝试仅使用 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 };
}

https://developer.intuit.com/app/developer/qbdesktop/docs/develop/tutorials/requests-for-receive-payments-bill-payments-and-deposits 这是参考链接。