首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Postman的简单Twinfield API请求

使用Postman的简单Twinfield API请求
EN

Stack Overflow用户
提问于 2022-03-15 13:44:58
回答 1查看 345关注 0票数 0

我想将销售发票与javascript/ google应用程序脚本连接起来。因此,我想用邮递员测试一些东西。我知道,API与XML一起工作,为了获取数据,您需要使用所谓的Browse代码100。但我不得不创建一个工作请求,以获取销售发票数据:

我到目前为止所做的:

  • 阅读Twinfield API文档
  • 开发人员门户中创建一个登录名
  • 设法用Postman请求授权代码:我做了一个变通方法来调整Postman中的参数,然后将请求URL粘贴到浏览器中
  • 托管请求访问令牌
  • 确定簇

我做了很多研究,但找不到我能理解的例子。这样的例子

  • 邮递员中的请求URL应该是什么样的
  • 我需要什么参数?
  • 是否有可能在javascript中有一个方便的请求来获得公开的销售发票?

我将非常感谢任何帮助!

EN

回答 1

Stack Overflow用户

发布于 2022-05-12 09:18:40

尝尝这个

代码语言:javascript
复制
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Header>
        <Header xmlns="http://www.twinfield.com/">
            <AccessToken>{{Accescode}}</AccessToken>
            <CompanyCode>{{Company}}</CompanyCode>
        </Header>
    </soap:Header>
    <soap:Body>
        <ProcessXmlDocument xmlns="http://www.twinfield.com/">
            <xmlRequest>
                <columns code="100">
                    <column xmlns="">
                        <field>fin.trs.head.yearperiod</field>
                        <operator>between</operator>
                        <from>2021/01</from>
                        <to>2022/01</to>
                        <visible>true</visible>
                    </column>
                    <column xmlns="">
                        <field>fin.trs.head.code</field>
                        <visible>true</visible>
                    </column>
                    <column xmlns="">
                        <field>fin.trs.head.shortname</field>
                        <visible>true</visible>
                    </column>
                    <column xmlns="">
                        <field>fin.trs.head.number</field>
                        <visible>true</visible>
                    </column>
                    <column xmlns="">
                        <field>fin.trs.head.status</field>
                        <visible>true</visible>
                    </column>
                    <column xmlns="">
                        <field>fin.trs.head.date</field>
                        <visible>true</visible>
                    </column>
                    <column xmlns="">
                        <field>fin.trs.line.dim2</field>
                        <visible>true</visible>
                    </column>
                    <column xmlns="">
                        <field>fin.trs.line.dim2name</field>
                        <visible>true</visible>
                    </column>
                    <column xmlns="">
                        <field>fin.trs.head.curcode</field>
                        <visible>true</visible>
                    </column>
                    <column xmlns="">
                        <field>fin.trs.line.valuesigned</field>
                        <visible>true</visible>
                    </column>
                    <column xmlns="">
                        <field>fin.trs.line.basevaluesigned</field>
                        <visible>true</visible>
                    </column>
                    <column xmlns="">
                        <field>fin.trs.line.repvaluesigned</field>
                        <visible>true</visible>
                    </column>
                    <column xmlns="">
                        <field>fin.trs.line.openbasevaluesigned</field>
                        <visible>true</visible>
                    </column>
                    <column xmlns="">
                        <field>fin.trs.line.invnumber</field>
                        <visible>true</visible>
                    </column>
                    <column xmlns="">
                        <field>fin.trs.line.datedue</field>
                        <visible>true</visible>
                    </column>
                    <column xmlns="">
                        <field>fin.trs.line.matchstatus</field>
                        <visible>true</visible>
                    </column>
                    <column xmlns="">
                        <field>fin.trs.line.matchnumber</field>
                        <visible>true</visible>
                    </column>
                    <column xmlns="">
                        <field>fin.trs.line.matchdate</field>
                        <visible>true</visible>
                    </column>
                    <column xmlns="">
                        <field>fin.trs.line.openvaluesigned</field>
                        <visible>true</visible>
                    </column>
                    <column xmlns="">
                        <field>fin.trs.line.availableforpayruns</field>
                        <visible>true</visible>
                    </column>
                    <column xmlns="">
                        <field>fin.trs.line.modified</field>
                        <visible>true</visible>
                    </column>
                </columns>
            </xmlRequest>
        </ProcessXmlDocument>
    </soap:Body>
</soap:Envelope>

编辑:让我们从开头开始,首先我假设您能够获得访问代码。使用访问代码,您需要对以下url执行Postmand请求:https://login.twinfield.com/auth/authentication/connect/accesstokenvalidation?token={{Accescode}}

从您需要为我复制clusterUrl的结果来看,如下所示:

代码语言:javascript
复制
"twf.clusterUrl": "https://api.accounting2.twinfield.com"

接下来,我们需要找到公司is -这也是我们可以从邮递员那里得到的东西,通过下面的帖子转到url:https://api.accounting2.twinfield.com/webservices/processxml.asmx?wsdl

正如您所看到的,这里有以前的cluserURL,所以您必须用找到的那个替换它。您需要与此请求一起发送的XML信封如下:

代码语言:javascript
复制
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:twin="http://www.twinfield.com/">
    <soapenv:Header>
        <twin:Header>
            <twin:AccessToken>{{Accescode}}</twin:AccessToken>
        </twin:Header>
    </soapenv:Header>
    <soapenv:Body>
        <twin:ProcessXmlString>
            <twin:xmlRequest><![CDATA[<list><type>offices</type></list>]]></twin:xmlRequest>
        </twin:ProcessXmlString>
    </soapenv:Body>
</soapenv:Envelope>

这将导致一个具有ID的列表,您可以从其中收集数据。要获得销售发票,您需要再次使用以下url:

https://api.accounting2.twinfield.com/webservices/processxml.asmx?wsdl

但这一次,我们把信封改成了我上面贴的第一个信封,只是把整个东西都放进了原状,这应该会导致发票清单的出现。

如果您需要更多的信息,我可以尝试为您提供一个集合,但我希望这能帮助您开始工作。

编辑2:关于您的第二个问题,您需要设置头部以接受xml输入,请参见下面

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71483325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档