首页  >  问答  >  正文

使用 Conolibyte Quickbooks PHP DevKit 将存款从 PHP 应用程序传递到 Quickbooks 桌面:克服挑战

我正在实施 Keith Palmer 的 QuickBooks PHP DevKit (https://github.com/consolibyte/quickbooks-php/),以便我的 PHP 应用程序可以通过 Quickbooks Web Connector 将数据传递到 Quickbooks Desktop。由于 PHP 和 Quickbooks 的更改,我遇到了一些问题,现在示例 Web 连接器应用程序可以正常工作并成功地将客户传递到 Quickbooks。

我的实际目标是通过 PHP 来模拟在 Quickbooks 中通过相对简单的过程完成的事务:

银行业务-->使用注册,(选择帐户),然后输入付款或存款金额、帐户、备忘录和点击记录。

我认为这(至少是存款部分)可以通过使用 PHP DevKit 中的 QUICKBOOKS_ADD_DEPOSIT 方法通过 DepositAddRq 来完成。现在我正在重写内容以使用此方法,我收到以下错误:

3180: 保存存款行时出错。 QuickBooks 错误消息:给定的记录号不在存款付款列表中。

SOAP 服务器正在生成以下 XML:

<?qbxml version="2.0"?>
        <QBXML>
            <QBXMLMsgsRq onError="stopOnError">
                <DepositAddRq requestID="19">
                    <DepositAdd>
                        <DepositToAccountRef>
                            <FullName>test account</FullName>
                        </DepositToAccountRef>
                        <Memo>Memo</Memo>
                        <DepositLineAdd>
                            <PaymentTxnID>3D95-1071497093</PaymentTxnID>
                        </DepositLineAdd>
                    </DepositAdd>
                </DepositAddRq>
            </QBXMLMsgsRq>
        </QBXML>

我收到了来自 Quickbooks 的 XML 响应:

<?xml version="1.0" ?>
<QBXML>
<QBXMLMsgsRs>
<DepositAddRs requestID="19" statusCode="3180" statusSeverity="Error" statusMessage="保存存款行时出错。  QuickBooks error message: The given record number is not in the Payments to Deposit list." />
</QBXMLMsgsRs>
</QBXML>

在传递 DepositAddRq 的 QuickBooks SDK 15 示例 XML 代码时,我收到相同的错误:

<QBXMLMsgsRq onError="stopOnError">
<DepositAddRq requestID="0">
<DepositAdd>
<DepositToAccountRef>
<FullName>Checking</FullName>
</DepositToAccountRef>
<DepositLineAdd>
<PaymentTxnID>3D95-1071497099</PaymentTxnID>
</DepositLineAdd>
</DepositAdd>
</DepositAddRq>
</QBXMLMsgsRq>
</QBXML>

我是否应该使用完全不同的方法来记录帐户的存款和付款,是否需要额外的步骤,或者我的做法是否完全错误?

提前致谢!

P粉481035232P粉481035232306 天前433

全部回复(1)我来回复

  • P粉523335026

    P粉5233350262024-01-11 00:47:25

    这有点棘手,但是如果您查看文档,您可以看到它想要什么:

    具体请看本节:

     
            
                    IDTYPE 
                    IDTYPE 
                    STRTYPE 
                    STRTYPE 
                     
                            IDTYPE 
                            STRTYPE 
                    
            
                     
                            IDTYPE 
                            STRTYPE 
                    
                     
                            IDTYPE 
                            STRTYPE 
                    
                    STRTYPE 
                    STRTYPE 
                     
                            IDTYPE 
                            STRTYPE 
                    
                     
                            IDTYPE 
                            STRTYPE 
                    
                    AMTTYPE 
            
    

    这意味着您可以或者提供付款链接 ()或者您可以提供以下链接一个帐户 ()。

    您在帖子中描述的内容和您在 XML 中显示的内容是两件不同的事情。在 XML 中,您尝试链接到现有的未存款付款(例如,您尝试将现有付款标记为已存入银行):

    3D95-1071497099

    但是您描述的指定帐户和备忘录

    ... (Select Account), and entering either a Payment or a Deposit amount, an Account, a Memo, and Clicking Record.

    如果您尝试模拟输入帐户、备忘录等,则您需要提供 XML 来指定帐户、备忘录等。例如,如下所示:

    
    
    
            
                    
                            
                                    
                                            Your Bank Account
                                    
    
                                    
    
                                            
                                                    Account Name Here
                                            
                                            Memo test
    
                                            100.00
                                                    
                                    
                            
    
                    
            
    

    回复
    0
  • 取消回复