我有以下内容:
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可以将我带回到原来使用的标签上。这可能吗?
我不确定使用此功能的预期方式,并且我们遇到了同一问题(iOS Safari)。
我们的解决方法-让回调转到保存事件的新端点(都在localstorage
中,并通过XHR到服务器DB),然后使用Javascript关闭自身。当前选项卡下的选项卡是我们开始使用的选项卡,然后可以执行操作。它在整个事务期间一直在轮询localstorage
和服务器以获取更新。
[我们发现,即使这样也很脆弱,因此也已在该站点上注册了webhooks。例如,在POS中,操作员可以按“ X”或类似的东西来中止交易,并且永远不会触发回调。但是,如果上游发生任何事情,无论如何我们都应该获得网络连接。
我希望Square提供一些更好的方法来达成此目的。从理论上讲,我们应该能够使用通用链接。