square-commerce-v1带回到窗口,而不是新选项卡

问题描述 投票:1回答:1

我有以下内容:

var dataParameter = {
    amount_money: {
        amount:        "10",
        currency_code: "USD"
    },

    // Replace this value with your application's callback URL
    callback_url: "https://website.com",

    // Replace this value with your application's ID
    client_id: "sq0123idp-asd89798asd",

    version: "1.3",
    notes: "notes for the transaction",
    options: {
        supported_tender_types: ["CREDIT_CARD","CASH","OTHER","SQUARE_GIFT_CARD","CARD_ON_FILE"]
    }
};

const url =
"square-commerce-v1://payment/create?data=" +
encodeURIComponent(JSON.stringify(dataParameter));

[每次我单击此链接,都会带我到正确的方形应用。但随后它将在新的URL中打开website.com

我正在尝试构建一个Web POS系统,以使Square可以将我带回到原来使用的标签上。这可能吗?

square-connect square
1个回答
0
投票

我不确定使用此功能的预期方式,并且我们遇到了同一问题(iOS Safari)。

我们的解决方法-让回调转到保存事件的新端点(都在localstorage中,并通过XHR到服务器DB),然后使用Javascript关闭自身。当前选项卡下的选项卡是我们开始使用的选项卡,然后可以执行操作。它在整个事务期间一直在轮询localstorage和服务器以获取更新。

[我们发现,即使这样也很脆弱,因此也已在该站点上注册了webhooks。例如,在POS中,操作员可以按“ X”或类似的东西来中止交易,并且永远不会触发回调。但是,如果上游发生任何事情,无论如何我们都应该获得网络连接。

我希望Square提供一些更好的方法来达成此目的。从理论上讲,我们应该能够使用通用链接。

© www.soinside.com 2019 - 2024. All rights reserved.