【发布时间】:2013-04-24 01:07:08
【问题描述】:
因此,Intuit 会针对 QuickBooks 的每个活动连接收费。因此,我想将我的应用程序中的 QuickBooks 功能仅限于高级用户。
理想情况下,当任何用户单击“连接到 QuickBooks”按钮并调用我的 RequestOAuthToken http 处理程序时,我想检查是否允许用户使用 QuickBooks。如果是这种情况,则继续正常的 OAuth 流程。如果不允许用户,那么我想将用户重定向到我的应用程序的升级页面。
鉴于“连接到 QuickBooks”按钮会打开一个新窗口(至少在桌面上,我没有在手机/平板电脑上尝试过),该窗口应该关闭,并且主窗口(我的应用程序)应该重定向用户到正确的页面。实际上,这正是正常 OAuth 流程完成后会发生的情况。
现在,我尝试了几种不同的方法,但都无法奏效。
1) 在我的 RequestOAuthToken 中,返回一个 HTTP 重定向到计划页面
2)在我的RequestOAuthToken中,返回一个带有javascript逻辑的html页面以重定向到页面
3) 在我的 RequestOAuthToken 中,返回 HTTP 重定向到带有 javascript 逻辑的页面以重定向到页面
4) 我还没有尝试过,但我能以某种方式拦截 Intuit 按钮上的 javascript 点击处理程序。我不确定这是否是一种公认的做法。
这是我从 .Net 示例中抓取的一段 javascript:
try
{
var parentlocation = window.parent.opener.location.hostname;
var currentlocation = window.location.hostname;
if (parentlocation != currentlocation)
{
window.location = plansUrl;
}
else
{
window.opener.location.href = window.opener.location.href;
window.close();
}
}
catch (e)
{
window.location = plansUrl;
}
请帮帮我。
【问题讨论】: