gpt4 book ai didi

quickbooks - 调用 intuit.ipp.anywhere.setup() 的最佳实践?

转载 作者:行者123 更新时间:2023-12-04 15:44:35 27 4
gpt4 key购买 nike

这是一个关于进行 JavaScript 调用的最佳实践的问题,该调用生成标准的“连接到 QuickBooks”按钮(用于通过 Intuit 的 v3 REST API 建立到 QuickBooks Harmony 的连接)。

如果我遵循 Intuit 的例子,我会:

  • 引用 https://appcenter.intuit.com/Content/IA/intuit.ipp.anywhere.js在脚本标签中。
  • 标记集放置在我希望“连接到 QuickBooks”按钮显示的位置
  • 交叉我的手指,希望 intuit.ipp.anywhere.js 不会重定向到停机消息,仍然存在
  • 调用 intuit.ipp.anywhere.setup()
  • 请参阅“连接到 QuickBooks”按钮

  • ......它有效(对于“作品”的许多值(value)),但感觉非常脆弱:
  • 如果 intuit.ipp.anywhere.js 正在重定向到停机消息(读取:不是 JavaScript)或以其他方式不可用,我将收到脚本错误。
  • 如果我收到脚本错误(或 Intuit 的脚本副本出现其他问题),则不会向用户提供任何反馈,只有“连接到 QuickBooks”按钮应位于的空白区域。

  • 为了使这一切更具弹性,我将对 intuit.ipp.anywhere.js 的引用和对 intuit.ipp.anywhere.setup() 的调用结合到 JQuery .ajax() 调用中:
        $.ajax({
    url: 'https://appcenter.intuit.com/Content/IA/intuit.ipp.anywhere.js',
    type: 'GET',
    dataType: 'script',
    timeout: 4000,
    success: function(response) {
    if (typeof intuit !== 'undefined') {
    intuit.ipp.anywhere.setup({
    menuProxy: 'MYMENUPROXYURL.aspx',
    grantUrl: 'MYGRANTURL.aspx'
    });
    }
    },
    error: function(x, t, m) {
    // show some friendly error message about Intuit downtime
    }
    });

    ...这也有效(对于“作品”的更多值(value)):
  • 我对 setup() 的调用包含在成功处理程序中(以及对 intuit 对象是否存在的额外检查),因此如果出现问题,我不应该收到脚本错误。
  • 如果 Intuit 脚本的 GET 超时(4000 毫秒后)或返回非脚本内容,我将向用户显示一条友好的错误消息。

  • 有没有其他人采取不同的方法?
    Intuit 重新上线了吗?

    最佳答案

    这与我们处理它的方式类似。我们已经将它封装在 jQuery.getScript 调用中,但显然 .fail 处理程序不适用于跨域脚本标签。我们的解决方案如下:

    <script type="text/javascript>
    var timeoutID;
    timeoutID = window.setTimeout(function () {
    $("#ippConnectToIntuit").replaceWith('<p class="error-message">There was a problem communicating with QuickBooks. The service may be down or in heavy use. Try again later.</p>');
    }, 5000);
    $.getScript("https://appcenter.intuit.com/Content/IA/intuit.ipp.anywhere.js")
    .done(function () {
    window.clearTimeout(timeoutID);
    intuit.ipp.anywhere.setup({
    menuProxy: '/path/to/our/menu/proxy',
    grantUrl: '/path/to/our/grant/url'
    });
    });
    </script>
    <div id="ippConnectToIntuit"><ipp:connecttointuit></ipp:connecttointuit></div>

    关于quickbooks - 调用 intuit.ipp.anywhere.setup() 的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21888826/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com