3120 error from ReceivePaymentAddRq - php devkitQuickBooks PHP DevKit connection errorsQuickbooks PHP DevKitAdd multiple line items in an invoice In open-source QuickBooks PHP DevKitUpdate & delete Items in open-source QuickBooks PHP DevKit on GitHubUpdate a line in an invoice in open-source QuickBooks PHP DevKit on GitHubUpdate payment in open-source QuickBooks PHP DevKit on GitHubError when using QuickBooks PHP DevKit examplesUnable to connect with QuickBooks PHP DevKitQuickbooks isn't compatible with the version of qbXML that I expectQuickbooks Desktop php Library Issue in “ReceivePaymentToDepositQuery”

Why is drive/partition number still used?

Is there a wealth gap in Boston where the median net worth of white households is $247,500 while the median net worth for black families was $8?

Is there a list of words that will enable the second player in two-player Ghost to always win?

Sci-fi change: Too much or Not enough

Are there any examples of technologies have been lost over time?

Isolated audio without a transformer

Can anyone give a concrete example to illustrate what is an uniform prior?

How many oliphaunts died in all of the Lord of the Rings battles?

Japanese reading of an integer

Symplectisation as a functor between appropriate categories

What language is Raven using for her attack in the new 52?

How to tar a list of directories only if they exist

How can religions be structured in ways that allow inter-faith councils to work?

Examples of simultaneous independent breakthroughs

Polyhedra, Polyhedron, Polytopes and Polygon

Why do all my history books divide Chinese history after the Han dynasty?

Could the rotation of a black hole cause other planets to rotate?

Does the Intel 8086 CPU have user mode and kernel mode?

Why is 'n' preferred over "n" for output streams?

Why/when is AC-DC-AC conversion superior to direct AC-AC conversion?

Why can't my huge trees be chopped down?

Checking if an integer is a member of an integer list

Is it legal to use cash pulled from a credit card to pay the monthly payment on that credit card?

Catan Victory points



3120 error from ReceivePaymentAddRq - php devkit


QuickBooks PHP DevKit connection errorsQuickbooks PHP DevKitAdd multiple line items in an invoice In open-source QuickBooks PHP DevKitUpdate & delete Items in open-source QuickBooks PHP DevKit on GitHubUpdate a line in an invoice in open-source QuickBooks PHP DevKit on GitHubUpdate payment in open-source QuickBooks PHP DevKit on GitHubError when using QuickBooks PHP DevKit examplesUnable to connect with QuickBooks PHP DevKitQuickbooks isn't compatible with the version of qbXML that I expectQuickbooks Desktop php Library Issue in “ReceivePaymentToDepositQuery”






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








0















I'm adding receive payments using php devkit here https://github.com/consolibyte/quickbooks-php.



The problem is no response from the quickbooks and also there is no issue. I checked the web connector logs and php log files.
But response function is not called ever.



I'm pretty sure this was working well until few days ago.
I have no idea what the exact problem is.



qbxml version: 10.0



request xml:



<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="10.0"?>
<QBXML>
<QBXMLMsgsRq onError="continueOnError">
<ReceivePaymentAddRq requestID="153">
<ReceivePaymentAdd>
<CustomerRef >
<FullName >Duncan, Dave</FullName>
</CustomerRef>
<TxnDate >2023-12-15</TxnDate>
<RefNumber>Wire</RefNumber>
<TotalAmount>2585.00</TotalAmount>
<PaymentMethodRef><FullName>Check</FullName></PaymentMethodRef>
<Memo>Paid In Full</Memo>
<AppliedToTxnAdd>
<TxnID>28CA9-1702576301</TxnID>
<PaymentAmount >2585.00</PaymentAmount>
</AppliedToTxnAdd>
</ReceivePaymentAdd>
</ReceivePaymentAddRq>
</QBXMLMsgsRq>
</QBXML>


php scripts:



$map = array(
QUICKBOOKS_ADD_RECEIVE_PAYMENT => array( '_quickbooks_payment_add_request', '_quickbooks_payment_add_response' ));

$errmap = array(
// QUICKBOOKS_IMPORT_CUSTOMER => '_quickbooks_customer_query_error',
'*' => '_quickbooks_error_catchall', // Catch any other errors that might occur
..

$hooks = array(
QuickBooks_WebConnector_Handlers::HOOK_LOGINSUCCESS => '_quickbooks_sync_to_qb', // call this whenever a successful login occurs
);


function _quickbooks_sync_to_qb($requestID, $user, $hook, &$err, $hook_data, $callback_config)

$database = new Database();
$db = $database->getConnection();

$Queue = new QuickBooks_WebConnector_Queue($database->dsn);
$payment = new Payment($db);
$payment->needSync = true;

$stmt = $payment->read();
$num = $stmt->rowCount();

if ($num > 0)
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))

$Queue->enqueue(QUICKBOOKS_ADD_RECEIVE_PAYMENT, $row['id']);




$database->destroy();



function _quickbooks_payment_add_request($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $version, $locale)
error_log('start from here');
$database = new Database();
$db = $database->getConnection();

// Grab the data from our MySQL database
$payment = new Payment($db);
$payment->id = (int) $ID;
error_log('1');
// Validation
$stmt = $payment->read();
$num = $stmt->rowCount();

if ($num > 0) error_log('2');
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))

extract($row);

// get trasaction id from invoice
$invoice = new Invoice($db);
$invoice->refNumber = $invoice_ref_number;
error_log('21');
$xml = '<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="10.0"?>
<QBXML>
<QBXMLMsgsRq onError="continueOnError">
<ReceivePaymentAddRq>
<ReceivePaymentAdd>';

if ($customer_ref_listid != ''
error_log('3');
$database->destroy();
error_log('4');
error_log($xml);
return $xml;

error_log('5');
$database->destroy();
return false;




This function seems not called even it is registered properly.



function _quickbooks_payment_add_response($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $xml, $idents)
{error_log('_quickbooks_payment_add_response');
$database = new Database();


EDIT:
VERBOSE LOG



20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : qbNationality="US"
20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : qbXMLMajorVers="13"
20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : qbXMLMinorVers="0"
20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : Received from sendRequestXML() following parameter:
20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : strRequestXML =
20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : XML dump follows: -

<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="10.0"?>
<QBXML>
<QBXMLMsgsRq onError="continueOnError">
<ReceivePaymentAddRq requestID="158">
<ReceivePaymentAdd><CustomerRef ><FullName >Duncan, Dave</FullName></CustomerRef><RefNumber>Wire</RefNumber>
<TotalAmount>2585.00</TotalAmount>
<PaymentMethodRef><FullName>Check</FullName></PaymentMethodRef>
<Memo>Paid In Full</Memo>
<AppliedToTxnAdd>
<TxnID>28CA9-1702576301</TxnID>
<PaymentAmount >2585.00</PaymentAmount>
</AppliedToTxnAdd>
</ReceivePaymentAdd>
</ReceivePaymentAddRq>
</QBXMLMsgsRq>
</QBXML>

20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : Request xml received.
20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : Processing request #1
20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : REQUEST: received from application: size (bytes) = 666
20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : Sending request to QuickBooks.
20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : Response received from QuickBooks: size (bytes) = 245
20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : Sending response back to application.
20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : *** Calling receiveResponseXML() with following parameters:
20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : wcTicket="35382423-f97d-5fc4-3935-d4a7629367a8"
20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : response =
20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : XML dump follows: -

<?xml version="1.0" ?>
<QBXML>
<QBXMLMsgsRs>
<ReceivePaymentAddRs requestID="158" statusCode="3120" statusSeverity="Error" statusMessage="Object &quot;28CA9-1702576301&quot; specified in the request cannot be found. " />
</QBXMLMsgsRs>
</QBXML>


20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : hresult=""
20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : message=""
20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : Received from receiveResponseXML() following parameters:
20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : more="100">
20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : Done. No more to process.










share|improve this question






























    0















    I'm adding receive payments using php devkit here https://github.com/consolibyte/quickbooks-php.



    The problem is no response from the quickbooks and also there is no issue. I checked the web connector logs and php log files.
    But response function is not called ever.



    I'm pretty sure this was working well until few days ago.
    I have no idea what the exact problem is.



    qbxml version: 10.0



    request xml:



    <?xml version="1.0" encoding="utf-8"?>
    <?qbxml version="10.0"?>
    <QBXML>
    <QBXMLMsgsRq onError="continueOnError">
    <ReceivePaymentAddRq requestID="153">
    <ReceivePaymentAdd>
    <CustomerRef >
    <FullName >Duncan, Dave</FullName>
    </CustomerRef>
    <TxnDate >2023-12-15</TxnDate>
    <RefNumber>Wire</RefNumber>
    <TotalAmount>2585.00</TotalAmount>
    <PaymentMethodRef><FullName>Check</FullName></PaymentMethodRef>
    <Memo>Paid In Full</Memo>
    <AppliedToTxnAdd>
    <TxnID>28CA9-1702576301</TxnID>
    <PaymentAmount >2585.00</PaymentAmount>
    </AppliedToTxnAdd>
    </ReceivePaymentAdd>
    </ReceivePaymentAddRq>
    </QBXMLMsgsRq>
    </QBXML>


    php scripts:



    $map = array(
    QUICKBOOKS_ADD_RECEIVE_PAYMENT => array( '_quickbooks_payment_add_request', '_quickbooks_payment_add_response' ));

    $errmap = array(
    // QUICKBOOKS_IMPORT_CUSTOMER => '_quickbooks_customer_query_error',
    '*' => '_quickbooks_error_catchall', // Catch any other errors that might occur
    ..

    $hooks = array(
    QuickBooks_WebConnector_Handlers::HOOK_LOGINSUCCESS => '_quickbooks_sync_to_qb', // call this whenever a successful login occurs
    );


    function _quickbooks_sync_to_qb($requestID, $user, $hook, &$err, $hook_data, $callback_config)

    $database = new Database();
    $db = $database->getConnection();

    $Queue = new QuickBooks_WebConnector_Queue($database->dsn);
    $payment = new Payment($db);
    $payment->needSync = true;

    $stmt = $payment->read();
    $num = $stmt->rowCount();

    if ($num > 0)
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC))

    $Queue->enqueue(QUICKBOOKS_ADD_RECEIVE_PAYMENT, $row['id']);




    $database->destroy();



    function _quickbooks_payment_add_request($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $version, $locale)
    error_log('start from here');
    $database = new Database();
    $db = $database->getConnection();

    // Grab the data from our MySQL database
    $payment = new Payment($db);
    $payment->id = (int) $ID;
    error_log('1');
    // Validation
    $stmt = $payment->read();
    $num = $stmt->rowCount();

    if ($num > 0) error_log('2');
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC))

    extract($row);

    // get trasaction id from invoice
    $invoice = new Invoice($db);
    $invoice->refNumber = $invoice_ref_number;
    error_log('21');
    $xml = '<?xml version="1.0" encoding="utf-8"?>
    <?qbxml version="10.0"?>
    <QBXML>
    <QBXMLMsgsRq onError="continueOnError">
    <ReceivePaymentAddRq>
    <ReceivePaymentAdd>';

    if ($customer_ref_listid != ''
    error_log('3');
    $database->destroy();
    error_log('4');
    error_log($xml);
    return $xml;

    error_log('5');
    $database->destroy();
    return false;




    This function seems not called even it is registered properly.



    function _quickbooks_payment_add_response($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $xml, $idents)
    {error_log('_quickbooks_payment_add_response');
    $database = new Database();


    EDIT:
    VERBOSE LOG



    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : qbNationality="US"
    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : qbXMLMajorVers="13"
    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : qbXMLMinorVers="0"
    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : Received from sendRequestXML() following parameter:
    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : strRequestXML =
    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : XML dump follows: -

    <?xml version="1.0" encoding="utf-8"?>
    <?qbxml version="10.0"?>
    <QBXML>
    <QBXMLMsgsRq onError="continueOnError">
    <ReceivePaymentAddRq requestID="158">
    <ReceivePaymentAdd><CustomerRef ><FullName >Duncan, Dave</FullName></CustomerRef><RefNumber>Wire</RefNumber>
    <TotalAmount>2585.00</TotalAmount>
    <PaymentMethodRef><FullName>Check</FullName></PaymentMethodRef>
    <Memo>Paid In Full</Memo>
    <AppliedToTxnAdd>
    <TxnID>28CA9-1702576301</TxnID>
    <PaymentAmount >2585.00</PaymentAmount>
    </AppliedToTxnAdd>
    </ReceivePaymentAdd>
    </ReceivePaymentAddRq>
    </QBXMLMsgsRq>
    </QBXML>

    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : Request xml received.
    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : Processing request #1
    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : REQUEST: received from application: size (bytes) = 666
    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : Sending request to QuickBooks.
    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : Response received from QuickBooks: size (bytes) = 245
    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : Sending response back to application.
    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : *** Calling receiveResponseXML() with following parameters:
    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : wcTicket="35382423-f97d-5fc4-3935-d4a7629367a8"
    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : response =
    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : XML dump follows: -

    <?xml version="1.0" ?>
    <QBXML>
    <QBXMLMsgsRs>
    <ReceivePaymentAddRs requestID="158" statusCode="3120" statusSeverity="Error" statusMessage="Object &quot;28CA9-1702576301&quot; specified in the request cannot be found. " />
    </QBXMLMsgsRs>
    </QBXML>


    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : hresult=""
    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : message=""
    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : Received from receiveResponseXML() following parameters:
    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : more="100">
    20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : Done. No more to process.










    share|improve this question


























      0












      0








      0








      I'm adding receive payments using php devkit here https://github.com/consolibyte/quickbooks-php.



      The problem is no response from the quickbooks and also there is no issue. I checked the web connector logs and php log files.
      But response function is not called ever.



      I'm pretty sure this was working well until few days ago.
      I have no idea what the exact problem is.



      qbxml version: 10.0



      request xml:



      <?xml version="1.0" encoding="utf-8"?>
      <?qbxml version="10.0"?>
      <QBXML>
      <QBXMLMsgsRq onError="continueOnError">
      <ReceivePaymentAddRq requestID="153">
      <ReceivePaymentAdd>
      <CustomerRef >
      <FullName >Duncan, Dave</FullName>
      </CustomerRef>
      <TxnDate >2023-12-15</TxnDate>
      <RefNumber>Wire</RefNumber>
      <TotalAmount>2585.00</TotalAmount>
      <PaymentMethodRef><FullName>Check</FullName></PaymentMethodRef>
      <Memo>Paid In Full</Memo>
      <AppliedToTxnAdd>
      <TxnID>28CA9-1702576301</TxnID>
      <PaymentAmount >2585.00</PaymentAmount>
      </AppliedToTxnAdd>
      </ReceivePaymentAdd>
      </ReceivePaymentAddRq>
      </QBXMLMsgsRq>
      </QBXML>


      php scripts:



      $map = array(
      QUICKBOOKS_ADD_RECEIVE_PAYMENT => array( '_quickbooks_payment_add_request', '_quickbooks_payment_add_response' ));

      $errmap = array(
      // QUICKBOOKS_IMPORT_CUSTOMER => '_quickbooks_customer_query_error',
      '*' => '_quickbooks_error_catchall', // Catch any other errors that might occur
      ..

      $hooks = array(
      QuickBooks_WebConnector_Handlers::HOOK_LOGINSUCCESS => '_quickbooks_sync_to_qb', // call this whenever a successful login occurs
      );


      function _quickbooks_sync_to_qb($requestID, $user, $hook, &$err, $hook_data, $callback_config)

      $database = new Database();
      $db = $database->getConnection();

      $Queue = new QuickBooks_WebConnector_Queue($database->dsn);
      $payment = new Payment($db);
      $payment->needSync = true;

      $stmt = $payment->read();
      $num = $stmt->rowCount();

      if ($num > 0)
      while ($row = $stmt->fetch(PDO::FETCH_ASSOC))

      $Queue->enqueue(QUICKBOOKS_ADD_RECEIVE_PAYMENT, $row['id']);




      $database->destroy();



      function _quickbooks_payment_add_request($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $version, $locale)
      error_log('start from here');
      $database = new Database();
      $db = $database->getConnection();

      // Grab the data from our MySQL database
      $payment = new Payment($db);
      $payment->id = (int) $ID;
      error_log('1');
      // Validation
      $stmt = $payment->read();
      $num = $stmt->rowCount();

      if ($num > 0) error_log('2');
      while ($row = $stmt->fetch(PDO::FETCH_ASSOC))

      extract($row);

      // get trasaction id from invoice
      $invoice = new Invoice($db);
      $invoice->refNumber = $invoice_ref_number;
      error_log('21');
      $xml = '<?xml version="1.0" encoding="utf-8"?>
      <?qbxml version="10.0"?>
      <QBXML>
      <QBXMLMsgsRq onError="continueOnError">
      <ReceivePaymentAddRq>
      <ReceivePaymentAdd>';

      if ($customer_ref_listid != ''
      error_log('3');
      $database->destroy();
      error_log('4');
      error_log($xml);
      return $xml;

      error_log('5');
      $database->destroy();
      return false;




      This function seems not called even it is registered properly.



      function _quickbooks_payment_add_response($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $xml, $idents)
      {error_log('_quickbooks_payment_add_response');
      $database = new Database();


      EDIT:
      VERBOSE LOG



      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : qbNationality="US"
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : qbXMLMajorVers="13"
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : qbXMLMinorVers="0"
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : Received from sendRequestXML() following parameter:
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : strRequestXML =
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : XML dump follows: -

      <?xml version="1.0" encoding="utf-8"?>
      <?qbxml version="10.0"?>
      <QBXML>
      <QBXMLMsgsRq onError="continueOnError">
      <ReceivePaymentAddRq requestID="158">
      <ReceivePaymentAdd><CustomerRef ><FullName >Duncan, Dave</FullName></CustomerRef><RefNumber>Wire</RefNumber>
      <TotalAmount>2585.00</TotalAmount>
      <PaymentMethodRef><FullName>Check</FullName></PaymentMethodRef>
      <Memo>Paid In Full</Memo>
      <AppliedToTxnAdd>
      <TxnID>28CA9-1702576301</TxnID>
      <PaymentAmount >2585.00</PaymentAmount>
      </AppliedToTxnAdd>
      </ReceivePaymentAdd>
      </ReceivePaymentAddRq>
      </QBXMLMsgsRq>
      </QBXML>

      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : Request xml received.
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : Processing request #1
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : REQUEST: received from application: size (bytes) = 666
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : Sending request to QuickBooks.
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : Response received from QuickBooks: size (bytes) = 245
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : Sending response back to application.
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : *** Calling receiveResponseXML() with following parameters:
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : wcTicket="35382423-f97d-5fc4-3935-d4a7629367a8"
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : response =
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : XML dump follows: -

      <?xml version="1.0" ?>
      <QBXML>
      <QBXMLMsgsRs>
      <ReceivePaymentAddRs requestID="158" statusCode="3120" statusSeverity="Error" statusMessage="Object &quot;28CA9-1702576301&quot; specified in the request cannot be found. " />
      </QBXMLMsgsRs>
      </QBXML>


      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : hresult=""
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : message=""
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : Received from receiveResponseXML() following parameters:
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : more="100">
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : Done. No more to process.










      share|improve this question
















      I'm adding receive payments using php devkit here https://github.com/consolibyte/quickbooks-php.



      The problem is no response from the quickbooks and also there is no issue. I checked the web connector logs and php log files.
      But response function is not called ever.



      I'm pretty sure this was working well until few days ago.
      I have no idea what the exact problem is.



      qbxml version: 10.0



      request xml:



      <?xml version="1.0" encoding="utf-8"?>
      <?qbxml version="10.0"?>
      <QBXML>
      <QBXMLMsgsRq onError="continueOnError">
      <ReceivePaymentAddRq requestID="153">
      <ReceivePaymentAdd>
      <CustomerRef >
      <FullName >Duncan, Dave</FullName>
      </CustomerRef>
      <TxnDate >2023-12-15</TxnDate>
      <RefNumber>Wire</RefNumber>
      <TotalAmount>2585.00</TotalAmount>
      <PaymentMethodRef><FullName>Check</FullName></PaymentMethodRef>
      <Memo>Paid In Full</Memo>
      <AppliedToTxnAdd>
      <TxnID>28CA9-1702576301</TxnID>
      <PaymentAmount >2585.00</PaymentAmount>
      </AppliedToTxnAdd>
      </ReceivePaymentAdd>
      </ReceivePaymentAddRq>
      </QBXMLMsgsRq>
      </QBXML>


      php scripts:



      $map = array(
      QUICKBOOKS_ADD_RECEIVE_PAYMENT => array( '_quickbooks_payment_add_request', '_quickbooks_payment_add_response' ));

      $errmap = array(
      // QUICKBOOKS_IMPORT_CUSTOMER => '_quickbooks_customer_query_error',
      '*' => '_quickbooks_error_catchall', // Catch any other errors that might occur
      ..

      $hooks = array(
      QuickBooks_WebConnector_Handlers::HOOK_LOGINSUCCESS => '_quickbooks_sync_to_qb', // call this whenever a successful login occurs
      );


      function _quickbooks_sync_to_qb($requestID, $user, $hook, &$err, $hook_data, $callback_config)

      $database = new Database();
      $db = $database->getConnection();

      $Queue = new QuickBooks_WebConnector_Queue($database->dsn);
      $payment = new Payment($db);
      $payment->needSync = true;

      $stmt = $payment->read();
      $num = $stmt->rowCount();

      if ($num > 0)
      while ($row = $stmt->fetch(PDO::FETCH_ASSOC))

      $Queue->enqueue(QUICKBOOKS_ADD_RECEIVE_PAYMENT, $row['id']);




      $database->destroy();



      function _quickbooks_payment_add_request($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $version, $locale)
      error_log('start from here');
      $database = new Database();
      $db = $database->getConnection();

      // Grab the data from our MySQL database
      $payment = new Payment($db);
      $payment->id = (int) $ID;
      error_log('1');
      // Validation
      $stmt = $payment->read();
      $num = $stmt->rowCount();

      if ($num > 0) error_log('2');
      while ($row = $stmt->fetch(PDO::FETCH_ASSOC))

      extract($row);

      // get trasaction id from invoice
      $invoice = new Invoice($db);
      $invoice->refNumber = $invoice_ref_number;
      error_log('21');
      $xml = '<?xml version="1.0" encoding="utf-8"?>
      <?qbxml version="10.0"?>
      <QBXML>
      <QBXMLMsgsRq onError="continueOnError">
      <ReceivePaymentAddRq>
      <ReceivePaymentAdd>';

      if ($customer_ref_listid != ''
      error_log('3');
      $database->destroy();
      error_log('4');
      error_log($xml);
      return $xml;

      error_log('5');
      $database->destroy();
      return false;




      This function seems not called even it is registered properly.



      function _quickbooks_payment_add_response($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $xml, $idents)
      {error_log('_quickbooks_payment_add_response');
      $database = new Database();


      EDIT:
      VERBOSE LOG



      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : qbNationality="US"
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : qbXMLMajorVers="13"
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : qbXMLMinorVers="0"
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : Received from sendRequestXML() following parameter:
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : strRequestXML =
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : XML dump follows: -

      <?xml version="1.0" encoding="utf-8"?>
      <?qbxml version="10.0"?>
      <QBXML>
      <QBXMLMsgsRq onError="continueOnError">
      <ReceivePaymentAddRq requestID="158">
      <ReceivePaymentAdd><CustomerRef ><FullName >Duncan, Dave</FullName></CustomerRef><RefNumber>Wire</RefNumber>
      <TotalAmount>2585.00</TotalAmount>
      <PaymentMethodRef><FullName>Check</FullName></PaymentMethodRef>
      <Memo>Paid In Full</Memo>
      <AppliedToTxnAdd>
      <TxnID>28CA9-1702576301</TxnID>
      <PaymentAmount >2585.00</PaymentAmount>
      </AppliedToTxnAdd>
      </ReceivePaymentAdd>
      </ReceivePaymentAddRq>
      </QBXMLMsgsRq>
      </QBXML>

      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : Request xml received.
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : Processing request #1
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : REQUEST: received from application: size (bytes) = 666
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : Sending request to QuickBooks.
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : Response received from QuickBooks: size (bytes) = 245
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : Sending response back to application.
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : *** Calling receiveResponseXML() with following parameters:
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : wcTicket="35382423-f97d-5fc4-3935-d4a7629367a8"
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : response =
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : XML dump follows: -

      <?xml version="1.0" ?>
      <QBXML>
      <QBXMLMsgsRs>
      <ReceivePaymentAddRs requestID="158" statusCode="3120" statusSeverity="Error" statusMessage="Object &quot;28CA9-1702576301&quot; specified in the request cannot be found. " />
      </QBXMLMsgsRs>
      </QBXML>


      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : hresult=""
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : message=""
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : Received from receiveResponseXML() following parameters:
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : more="100">
      20190327.20:42:17 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : Done. No more to process.







      quickbooks






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 27 at 20:55







      brucelin

















      asked Mar 26 at 18:41









      brucelinbrucelin

      1111 silver badge14 bronze badges




      1111 silver badge14 bronze badges






















          1 Answer
          1






          active

          oldest

          votes


















          1














          It's hard to tell without seeing the logs (Web Connector logs in VERBOSE mode and also the quickbooks_log SQL table output) exactly what's wrong here, but here's at least a few things to check:



          1. Are you SURE you're not getting a response from QuickBooks?



          You indicate "The problem is no response from the quickbooks" but that may not be the actual case here.



          Have you verified that you're not getting a response in the actual logs? For example, if an error were to occur (e.g. maybe the customer or the invoice does not exist) then QuickBooks will send back an error but your response function won't get called -- an error handler will get called instead.



          Do you have something like this in your code?



          $errmap = array(
          3070 => '_quickbooks_error_stringtoolong', // Whenever a string is too long to fit in a field, call this function: _quickbooks_error_stringtolong()
          // ... more error handlers here ...
          );


          (from https://github.com/consolibyte/quickbooks-php/blob/master/docs/web_connector/example_web_connector.php )



          Maybe an error handler is getting called instead of your response function?



          2. You aren't passing a requestID="..." attribute



          The Web Connector uses a requestID="..." attribute in the XML to be able to match up the outgoing requests with the incoming responses. You're not using it, but should be.



          Change this:



          <ReceivePaymentAddRq>



          To this:



          <ReceivePaymentAddRq requestID="' . $requestID . '">



          Read more:



          • http://wiki.consolibyte.com/wiki/doku.php/quickbooks_integration_php_consolibyte#i_m_getting_the_error_messageno_registered_functions_for_action

          3. You're not XML encoding values



          For this:



          <Memo>' . $memo . '</Memo>



          If $memo is set to bla bla <something> bla bla then you're going to end up with malformed XML:



          <Memo>bla bla <something bla bla</Memo>



          You should be XML-encoding these values.



          4. The $memo variable is undefined



          You're saying that your resulting XML looks like this:



          <Memo>Paid In Full</Memo>



          But when I look at your code, $memo is undefined. This makes me suspect that the XML you pasted here is not the actual XML you're sending to QuickBooks.



          Where does that variable get set to Paid In Full? It doesn't get set anywhere in the code you pasted.



          This should also be causing a PHP error/warning about an undefined variable, which could be breaking things.



          5. Make sure your Web Connector is in VERBOSE mode



          VERBOSE mode in the Web Connector shows a lot more data. You should be able to easily find the request in question and analyze/post the relevant logs.



          6. Check the quickbooks_log and quickbooks_queue tables



          What do they show/say?



          What is the status (qb_status field) and message on the queued up record (quickbooks_queue SQL table)?






          share|improve this answer

























          • I checked _queue table, qb_status says "h" and msg field is "3120: Object "28CA9-1702576301" specified in the request cannot be found. "

            – brucelin
            Mar 27 at 15:57











          • FYI, I added the requsetID to the qbxml and the above xml is coming from the log file which means $memo is not undefined, the problem is 3120 error code

            – brucelin
            Mar 27 at 16:10












          • Ah, so you ARE getting a response from QuickBooks then! I will amend my answer with some additional details here.

            – Keith Palmer Jr.
            Mar 27 at 20:35











          • I checked the invoice and trasaction ID "28CA9-1702576301", this is correct one. I'm not sure why the log says this - "Attempting to handle error: 3120, Object "28CA9-1702576301" specified in the request cannot be found.". after request, it falls into catch error function because of this issue.

            – brucelin
            Mar 27 at 20:38






          • 1





            Is the invoice paid or unpaid? Is the balance on the invoice less than or equal to the amount you are applying to it? Is the customer for the invoice the same as the customer for the payment? Is the A/R account for the payment the same as the A/R account for the invoice? I'd start with those.

            – Keith Palmer Jr.
            Mar 27 at 20:40










          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55364196%2f3120-error-from-receivepaymentaddrq-php-devkit%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1














          It's hard to tell without seeing the logs (Web Connector logs in VERBOSE mode and also the quickbooks_log SQL table output) exactly what's wrong here, but here's at least a few things to check:



          1. Are you SURE you're not getting a response from QuickBooks?



          You indicate "The problem is no response from the quickbooks" but that may not be the actual case here.



          Have you verified that you're not getting a response in the actual logs? For example, if an error were to occur (e.g. maybe the customer or the invoice does not exist) then QuickBooks will send back an error but your response function won't get called -- an error handler will get called instead.



          Do you have something like this in your code?



          $errmap = array(
          3070 => '_quickbooks_error_stringtoolong', // Whenever a string is too long to fit in a field, call this function: _quickbooks_error_stringtolong()
          // ... more error handlers here ...
          );


          (from https://github.com/consolibyte/quickbooks-php/blob/master/docs/web_connector/example_web_connector.php )



          Maybe an error handler is getting called instead of your response function?



          2. You aren't passing a requestID="..." attribute



          The Web Connector uses a requestID="..." attribute in the XML to be able to match up the outgoing requests with the incoming responses. You're not using it, but should be.



          Change this:



          <ReceivePaymentAddRq>



          To this:



          <ReceivePaymentAddRq requestID="' . $requestID . '">



          Read more:



          • http://wiki.consolibyte.com/wiki/doku.php/quickbooks_integration_php_consolibyte#i_m_getting_the_error_messageno_registered_functions_for_action

          3. You're not XML encoding values



          For this:



          <Memo>' . $memo . '</Memo>



          If $memo is set to bla bla <something> bla bla then you're going to end up with malformed XML:



          <Memo>bla bla <something bla bla</Memo>



          You should be XML-encoding these values.



          4. The $memo variable is undefined



          You're saying that your resulting XML looks like this:



          <Memo>Paid In Full</Memo>



          But when I look at your code, $memo is undefined. This makes me suspect that the XML you pasted here is not the actual XML you're sending to QuickBooks.



          Where does that variable get set to Paid In Full? It doesn't get set anywhere in the code you pasted.



          This should also be causing a PHP error/warning about an undefined variable, which could be breaking things.



          5. Make sure your Web Connector is in VERBOSE mode



          VERBOSE mode in the Web Connector shows a lot more data. You should be able to easily find the request in question and analyze/post the relevant logs.



          6. Check the quickbooks_log and quickbooks_queue tables



          What do they show/say?



          What is the status (qb_status field) and message on the queued up record (quickbooks_queue SQL table)?






          share|improve this answer

























          • I checked _queue table, qb_status says "h" and msg field is "3120: Object "28CA9-1702576301" specified in the request cannot be found. "

            – brucelin
            Mar 27 at 15:57











          • FYI, I added the requsetID to the qbxml and the above xml is coming from the log file which means $memo is not undefined, the problem is 3120 error code

            – brucelin
            Mar 27 at 16:10












          • Ah, so you ARE getting a response from QuickBooks then! I will amend my answer with some additional details here.

            – Keith Palmer Jr.
            Mar 27 at 20:35











          • I checked the invoice and trasaction ID "28CA9-1702576301", this is correct one. I'm not sure why the log says this - "Attempting to handle error: 3120, Object "28CA9-1702576301" specified in the request cannot be found.". after request, it falls into catch error function because of this issue.

            – brucelin
            Mar 27 at 20:38






          • 1





            Is the invoice paid or unpaid? Is the balance on the invoice less than or equal to the amount you are applying to it? Is the customer for the invoice the same as the customer for the payment? Is the A/R account for the payment the same as the A/R account for the invoice? I'd start with those.

            – Keith Palmer Jr.
            Mar 27 at 20:40















          1














          It's hard to tell without seeing the logs (Web Connector logs in VERBOSE mode and also the quickbooks_log SQL table output) exactly what's wrong here, but here's at least a few things to check:



          1. Are you SURE you're not getting a response from QuickBooks?



          You indicate "The problem is no response from the quickbooks" but that may not be the actual case here.



          Have you verified that you're not getting a response in the actual logs? For example, if an error were to occur (e.g. maybe the customer or the invoice does not exist) then QuickBooks will send back an error but your response function won't get called -- an error handler will get called instead.



          Do you have something like this in your code?



          $errmap = array(
          3070 => '_quickbooks_error_stringtoolong', // Whenever a string is too long to fit in a field, call this function: _quickbooks_error_stringtolong()
          // ... more error handlers here ...
          );


          (from https://github.com/consolibyte/quickbooks-php/blob/master/docs/web_connector/example_web_connector.php )



          Maybe an error handler is getting called instead of your response function?



          2. You aren't passing a requestID="..." attribute



          The Web Connector uses a requestID="..." attribute in the XML to be able to match up the outgoing requests with the incoming responses. You're not using it, but should be.



          Change this:



          <ReceivePaymentAddRq>



          To this:



          <ReceivePaymentAddRq requestID="' . $requestID . '">



          Read more:



          • http://wiki.consolibyte.com/wiki/doku.php/quickbooks_integration_php_consolibyte#i_m_getting_the_error_messageno_registered_functions_for_action

          3. You're not XML encoding values



          For this:



          <Memo>' . $memo . '</Memo>



          If $memo is set to bla bla <something> bla bla then you're going to end up with malformed XML:



          <Memo>bla bla <something bla bla</Memo>



          You should be XML-encoding these values.



          4. The $memo variable is undefined



          You're saying that your resulting XML looks like this:



          <Memo>Paid In Full</Memo>



          But when I look at your code, $memo is undefined. This makes me suspect that the XML you pasted here is not the actual XML you're sending to QuickBooks.



          Where does that variable get set to Paid In Full? It doesn't get set anywhere in the code you pasted.



          This should also be causing a PHP error/warning about an undefined variable, which could be breaking things.



          5. Make sure your Web Connector is in VERBOSE mode



          VERBOSE mode in the Web Connector shows a lot more data. You should be able to easily find the request in question and analyze/post the relevant logs.



          6. Check the quickbooks_log and quickbooks_queue tables



          What do they show/say?



          What is the status (qb_status field) and message on the queued up record (quickbooks_queue SQL table)?






          share|improve this answer

























          • I checked _queue table, qb_status says "h" and msg field is "3120: Object "28CA9-1702576301" specified in the request cannot be found. "

            – brucelin
            Mar 27 at 15:57











          • FYI, I added the requsetID to the qbxml and the above xml is coming from the log file which means $memo is not undefined, the problem is 3120 error code

            – brucelin
            Mar 27 at 16:10












          • Ah, so you ARE getting a response from QuickBooks then! I will amend my answer with some additional details here.

            – Keith Palmer Jr.
            Mar 27 at 20:35











          • I checked the invoice and trasaction ID "28CA9-1702576301", this is correct one. I'm not sure why the log says this - "Attempting to handle error: 3120, Object "28CA9-1702576301" specified in the request cannot be found.". after request, it falls into catch error function because of this issue.

            – brucelin
            Mar 27 at 20:38






          • 1





            Is the invoice paid or unpaid? Is the balance on the invoice less than or equal to the amount you are applying to it? Is the customer for the invoice the same as the customer for the payment? Is the A/R account for the payment the same as the A/R account for the invoice? I'd start with those.

            – Keith Palmer Jr.
            Mar 27 at 20:40













          1












          1








          1







          It's hard to tell without seeing the logs (Web Connector logs in VERBOSE mode and also the quickbooks_log SQL table output) exactly what's wrong here, but here's at least a few things to check:



          1. Are you SURE you're not getting a response from QuickBooks?



          You indicate "The problem is no response from the quickbooks" but that may not be the actual case here.



          Have you verified that you're not getting a response in the actual logs? For example, if an error were to occur (e.g. maybe the customer or the invoice does not exist) then QuickBooks will send back an error but your response function won't get called -- an error handler will get called instead.



          Do you have something like this in your code?



          $errmap = array(
          3070 => '_quickbooks_error_stringtoolong', // Whenever a string is too long to fit in a field, call this function: _quickbooks_error_stringtolong()
          // ... more error handlers here ...
          );


          (from https://github.com/consolibyte/quickbooks-php/blob/master/docs/web_connector/example_web_connector.php )



          Maybe an error handler is getting called instead of your response function?



          2. You aren't passing a requestID="..." attribute



          The Web Connector uses a requestID="..." attribute in the XML to be able to match up the outgoing requests with the incoming responses. You're not using it, but should be.



          Change this:



          <ReceivePaymentAddRq>



          To this:



          <ReceivePaymentAddRq requestID="' . $requestID . '">



          Read more:



          • http://wiki.consolibyte.com/wiki/doku.php/quickbooks_integration_php_consolibyte#i_m_getting_the_error_messageno_registered_functions_for_action

          3. You're not XML encoding values



          For this:



          <Memo>' . $memo . '</Memo>



          If $memo is set to bla bla <something> bla bla then you're going to end up with malformed XML:



          <Memo>bla bla <something bla bla</Memo>



          You should be XML-encoding these values.



          4. The $memo variable is undefined



          You're saying that your resulting XML looks like this:



          <Memo>Paid In Full</Memo>



          But when I look at your code, $memo is undefined. This makes me suspect that the XML you pasted here is not the actual XML you're sending to QuickBooks.



          Where does that variable get set to Paid In Full? It doesn't get set anywhere in the code you pasted.



          This should also be causing a PHP error/warning about an undefined variable, which could be breaking things.



          5. Make sure your Web Connector is in VERBOSE mode



          VERBOSE mode in the Web Connector shows a lot more data. You should be able to easily find the request in question and analyze/post the relevant logs.



          6. Check the quickbooks_log and quickbooks_queue tables



          What do they show/say?



          What is the status (qb_status field) and message on the queued up record (quickbooks_queue SQL table)?






          share|improve this answer















          It's hard to tell without seeing the logs (Web Connector logs in VERBOSE mode and also the quickbooks_log SQL table output) exactly what's wrong here, but here's at least a few things to check:



          1. Are you SURE you're not getting a response from QuickBooks?



          You indicate "The problem is no response from the quickbooks" but that may not be the actual case here.



          Have you verified that you're not getting a response in the actual logs? For example, if an error were to occur (e.g. maybe the customer or the invoice does not exist) then QuickBooks will send back an error but your response function won't get called -- an error handler will get called instead.



          Do you have something like this in your code?



          $errmap = array(
          3070 => '_quickbooks_error_stringtoolong', // Whenever a string is too long to fit in a field, call this function: _quickbooks_error_stringtolong()
          // ... more error handlers here ...
          );


          (from https://github.com/consolibyte/quickbooks-php/blob/master/docs/web_connector/example_web_connector.php )



          Maybe an error handler is getting called instead of your response function?



          2. You aren't passing a requestID="..." attribute



          The Web Connector uses a requestID="..." attribute in the XML to be able to match up the outgoing requests with the incoming responses. You're not using it, but should be.



          Change this:



          <ReceivePaymentAddRq>



          To this:



          <ReceivePaymentAddRq requestID="' . $requestID . '">



          Read more:



          • http://wiki.consolibyte.com/wiki/doku.php/quickbooks_integration_php_consolibyte#i_m_getting_the_error_messageno_registered_functions_for_action

          3. You're not XML encoding values



          For this:



          <Memo>' . $memo . '</Memo>



          If $memo is set to bla bla <something> bla bla then you're going to end up with malformed XML:



          <Memo>bla bla <something bla bla</Memo>



          You should be XML-encoding these values.



          4. The $memo variable is undefined



          You're saying that your resulting XML looks like this:



          <Memo>Paid In Full</Memo>



          But when I look at your code, $memo is undefined. This makes me suspect that the XML you pasted here is not the actual XML you're sending to QuickBooks.



          Where does that variable get set to Paid In Full? It doesn't get set anywhere in the code you pasted.



          This should also be causing a PHP error/warning about an undefined variable, which could be breaking things.



          5. Make sure your Web Connector is in VERBOSE mode



          VERBOSE mode in the Web Connector shows a lot more data. You should be able to easily find the request in question and analyze/post the relevant logs.



          6. Check the quickbooks_log and quickbooks_queue tables



          What do they show/say?



          What is the status (qb_status field) and message on the queued up record (quickbooks_queue SQL table)?







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Mar 27 at 20:39

























          answered Mar 27 at 11:06









          Keith Palmer Jr.Keith Palmer Jr.

          22.2k15 gold badges57 silver badges99 bronze badges




          22.2k15 gold badges57 silver badges99 bronze badges












          • I checked _queue table, qb_status says "h" and msg field is "3120: Object "28CA9-1702576301" specified in the request cannot be found. "

            – brucelin
            Mar 27 at 15:57











          • FYI, I added the requsetID to the qbxml and the above xml is coming from the log file which means $memo is not undefined, the problem is 3120 error code

            – brucelin
            Mar 27 at 16:10












          • Ah, so you ARE getting a response from QuickBooks then! I will amend my answer with some additional details here.

            – Keith Palmer Jr.
            Mar 27 at 20:35











          • I checked the invoice and trasaction ID "28CA9-1702576301", this is correct one. I'm not sure why the log says this - "Attempting to handle error: 3120, Object "28CA9-1702576301" specified in the request cannot be found.". after request, it falls into catch error function because of this issue.

            – brucelin
            Mar 27 at 20:38






          • 1





            Is the invoice paid or unpaid? Is the balance on the invoice less than or equal to the amount you are applying to it? Is the customer for the invoice the same as the customer for the payment? Is the A/R account for the payment the same as the A/R account for the invoice? I'd start with those.

            – Keith Palmer Jr.
            Mar 27 at 20:40

















          • I checked _queue table, qb_status says "h" and msg field is "3120: Object "28CA9-1702576301" specified in the request cannot be found. "

            – brucelin
            Mar 27 at 15:57











          • FYI, I added the requsetID to the qbxml and the above xml is coming from the log file which means $memo is not undefined, the problem is 3120 error code

            – brucelin
            Mar 27 at 16:10












          • Ah, so you ARE getting a response from QuickBooks then! I will amend my answer with some additional details here.

            – Keith Palmer Jr.
            Mar 27 at 20:35











          • I checked the invoice and trasaction ID "28CA9-1702576301", this is correct one. I'm not sure why the log says this - "Attempting to handle error: 3120, Object "28CA9-1702576301" specified in the request cannot be found.". after request, it falls into catch error function because of this issue.

            – brucelin
            Mar 27 at 20:38






          • 1





            Is the invoice paid or unpaid? Is the balance on the invoice less than or equal to the amount you are applying to it? Is the customer for the invoice the same as the customer for the payment? Is the A/R account for the payment the same as the A/R account for the invoice? I'd start with those.

            – Keith Palmer Jr.
            Mar 27 at 20:40
















          I checked _queue table, qb_status says "h" and msg field is "3120: Object "28CA9-1702576301" specified in the request cannot be found. "

          – brucelin
          Mar 27 at 15:57





          I checked _queue table, qb_status says "h" and msg field is "3120: Object "28CA9-1702576301" specified in the request cannot be found. "

          – brucelin
          Mar 27 at 15:57













          FYI, I added the requsetID to the qbxml and the above xml is coming from the log file which means $memo is not undefined, the problem is 3120 error code

          – brucelin
          Mar 27 at 16:10






          FYI, I added the requsetID to the qbxml and the above xml is coming from the log file which means $memo is not undefined, the problem is 3120 error code

          – brucelin
          Mar 27 at 16:10














          Ah, so you ARE getting a response from QuickBooks then! I will amend my answer with some additional details here.

          – Keith Palmer Jr.
          Mar 27 at 20:35





          Ah, so you ARE getting a response from QuickBooks then! I will amend my answer with some additional details here.

          – Keith Palmer Jr.
          Mar 27 at 20:35













          I checked the invoice and trasaction ID "28CA9-1702576301", this is correct one. I'm not sure why the log says this - "Attempting to handle error: 3120, Object "28CA9-1702576301" specified in the request cannot be found.". after request, it falls into catch error function because of this issue.

          – brucelin
          Mar 27 at 20:38





          I checked the invoice and trasaction ID "28CA9-1702576301", this is correct one. I'm not sure why the log says this - "Attempting to handle error: 3120, Object "28CA9-1702576301" specified in the request cannot be found.". after request, it falls into catch error function because of this issue.

          – brucelin
          Mar 27 at 20:38




          1




          1





          Is the invoice paid or unpaid? Is the balance on the invoice less than or equal to the amount you are applying to it? Is the customer for the invoice the same as the customer for the payment? Is the A/R account for the payment the same as the A/R account for the invoice? I'd start with those.

          – Keith Palmer Jr.
          Mar 27 at 20:40





          Is the invoice paid or unpaid? Is the balance on the invoice less than or equal to the amount you are applying to it? Is the customer for the invoice the same as the customer for the payment? Is the A/R account for the payment the same as the A/R account for the invoice? I'd start with those.

          – Keith Palmer Jr.
          Mar 27 at 20:40








          Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.







          Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.



















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55364196%2f3120-error-from-receivepaymentaddrq-php-devkit%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

          Swift 4 - func physicsWorld not invoked on collision? The Next CEO of Stack OverflowHow to call Objective-C code from Swift#ifdef replacement in the Swift language@selector() in Swift?#pragma mark in Swift?Swift for loop: for index, element in array?dispatch_after - GCD in Swift?Swift Beta performance: sorting arraysSplit a String into an array in Swift?The use of Swift 3 @objc inference in Swift 4 mode is deprecated?How to optimize UITableViewCell, because my UITableView lags

          Access current req object everywhere in Node.js ExpressWhy are global variables considered bad practice? (node.js)Using req & res across functionsHow do I get the path to the current script with Node.js?What is Node.js' Connect, Express and “middleware”?Node.js w/ express error handling in callbackHow to access the GET parameters after “?” in Express?Modify Node.js req object parametersAccess “app” variable inside of ExpressJS/ConnectJS middleware?Node.js Express app - request objectAngular Http Module considered middleware?Session variables in ExpressJSAdd properties to the req object in expressjs with Typescript