Ошибка Netsuite Неверный код ссылки на код авторизации - PullRequest
0 голосов
/ 17 сентября 2018

Вот запрос Netsuite SuiteTalk.

<soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soap:Header>
        <preferences xmlns="urn:messages_2016_1.platform.webservices.netsuite.com">
            <warningAsError>false</warningAsError>
            <ignoreReadOnlyFields>true</ignoreReadOnlyFields>
        </preferences>
        <tokenPassport xmlns="urn:messages_2016_1.platform.webservices.netsuite.com">
            <account xmlns="urn:core_2016_1.platform.webservices.netsuite.com">1111111</account>
            <consumerKey xmlns="urn:core_2016_1.platform.webservices.netsuite.com">****************************************************************</consumerKey>
            <token xmlns="urn:core_2016_1.platform.webservices.netsuite.com">****************************************************************</token>
            <nonce xmlns="urn:core_2016_1.platform.webservices.netsuite.com">11111111</nonce>
            <timestamp xmlns="urn:core_2016_1.platform.webservices.netsuite.com">1536472013</timestamp>
            <signature algorithm="HMAC-SHA1" xmlns="urn:core_2016_1.platform.webservices.netsuite.com">****************************</signature>
        </tokenPassport>
    </soap:Header>
    <soap:Body>
        <add xmlns="urn:messages_2016_1.platform.webservices.netsuite.com">
            <record externalId="KO31008" xsi:type="q1:SalesOrder" xmlns:q1="urn:sales_2016_1.transactions.webservices.netsuite.com">
                <q1:entity type="customer" internalId="45016">
                    <name xmlns="urn:core_2016_1.platform.webservices.netsuite.com">63163</name>
                </q1:entity>
                <q1:currency type="currency" internalId="1">
                    <name xmlns="urn:core_2016_1.platform.webservices.netsuite.com">AUD</name>
                </q1:currency>
                <q1:tranId>KO31008</q1:tranId>
                <q1:memo/>
                <q1:toBeEmailed>true</q1:toBeEmailed>
                <q1:email>xxxxxx@gmail.com</q1:email>
                <q1:shippingAddress>
                    <country xmlns="urn:common_2016_1.platform.webservices.netsuite.com">xxxxxx</country>
                    <addressee xmlns="urn:common_2016_1.platform.webservices.netsuite.com">xxxxxxxxxxxx</addressee>
                    <addr1 xmlns="urn:common_2016_1.platform.webservices.netsuite.com">xxxxxxxxxxxxxxxxxx</addr1>
                    <addr2 xmlns="urn:common_2016_1.platform.webservices.netsuite.com"/>
                    <city xmlns="urn:common_2016_1.platform.webservices.netsuite.com">xxxxxx</city>
                    <state xmlns="urn:common_2016_1.platform.webservices.netsuite.com"/>
                    <zip xmlns="urn:common_2016_1.platform.webservices.netsuite.com">xxxxxxx</zip>
                </q1:shippingAddress>
                <q1:shipMethod type="estimate" internalId=""/>
                <q1:shippingCost>0</q1:shippingCost>
                <q1:shippingTaxCode type="salesTaxItem" internalId="10"/>
                <q1:shipComplete>true</q1:shipComplete>
                <q1:subTotal>0</q1:subTotal>
                <q1:department type="department" internalId="1"/>
                <q1:location type="location" internalId="7"/>
                <q1:giftCertApplied>72.24</q1:giftCertApplied>
                <q1:giftCertRedemptionList>
                    <q1:giftCertRedemption>
                        <q1:authCode type="giftCertificate" internalId="65509"/>
                        <q1:authCodeApplied>72.24</q1:authCodeApplied>
                    </q1:giftCertRedemption>
                </q1:giftCertRedemptionList>
                <q1:itemList>
                    <q1:item>
                        <q1:item type="inventoryItem" internalId="40269"/>
                        <q1:quantity>1</q1:quantity>
                        <q1:rate>72.24</q1:rate>
                        <q1:grossAmt>72.24</q1:grossAmt>
                    </q1:item>
                </q1:itemList>
                <q1:customFieldList>
                    <customField scriptId="custbody_web_order_status" xsi:type="SelectCustomFieldRef" xmlns="urn:core_2016_1.platform.webservices.netsuite.com">
                        <value typeId="1307" internalId="6"/>
                    </customField>
                </q1:customFieldList>
            </record>
        </add>
    </soap:Body>
</soap:Envelope>

А вот ответ Netsuite SuiteTalk.

<soapenv:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header>
        <platformMsgs:documentInfo xmlns:platformMsgs="urn:messages_2016_1.platform.webservices.netsuite.com">
            <platformMsgs:nsId>WEBSERVICES_3778817_090820181126278433927387249_25a0c73f2966</platformMsgs:nsId>
        </platformMsgs:documentInfo>
    </soapenv:Header>
    <soapenv:Body>
        <addResponse xmlns="urn:messages_2016_1.platform.webservices.netsuite.com">
            <writeResponse>
                <platformCore:status isSuccess="false" xmlns:platformCore="urn:core_2016_1.platform.webservices.netsuite.com">
                    <platformCore:statusDetail type="ERROR">
                        <platformCore:code>INVALID_KEY_OR_REF</platformCore:code>
                        <platformCore:message>Invalid authcode reference key 65509 for currency 1.</platformCore:message>
                    </platformCore:statusDetail>
                </platformCore:status>
            </writeResponse>
        </addResponse>
    </soapenv:Body>
</soapenv:Envelope>

Я знаю, что код ошибки (INVALID_KEY_OF_REF) связан с пустой записанной ссылкой. Поэтому я проверил подарочный сертификат и валюту с этим внутренним идентификатором 65509, 1 и смог увидеть соответствующий подарочный сертификат и валюту. И не мог видеть никаких других проблем.

Как я могу исправить эту проблему?

А также, что именно означает «Неверный код ссылки на код авторизации 65509 для валюты 1». ? Выше мыло для создания SalesOrder. В этом случае мне интересно, какие существуют отношения между валютой SalesOrder и giftCertificate.

...