我已经构建了一个在Android设备上的浏览器中运行的Web应用程序。启动方形POS应用程序的URL如下:
意图:#Intent;动作= com.squareup.pos.action.CHARGE;包= com.squareup; S.com.squareup.pos.WEB_CALLBACK_URI =&#34 + + callbackUrl" ; S.com.squareup.pos.CLIENT_ID =&#34 + +的clientId&#34 ;; S.com.squareup.pos.API_VERSION = 2.0; i.com.squareup.pos.TOTAL_AMOUNT = 100; S .com.squareup.pos.CURRENCY_CODE = AUD; S.com.squareup.pos.TENDER_TYPES = com.squareup.pos.TENDER_CARD; S.com.squareup.pos.NOTE =&#34 + +订单ID" ; S.com.squareup.pos.REQUEST_METADATA =&#34 + +订单ID&#34 ;; l.com.squareup.pos.AUTO_RETURN_TIMEOUT_MS = 3200;端
方形POS应用程序按预期启动。我可以通过POS应用程序处理付款,并在成功交易后切换到浏览器并加载回调网址。这一切都运作良好。
但是,如果我点击上面的链接打开方形POS应用程序,然后点击方形POS应用程序中的取消[x]按钮,它会回到浏览器,然后使用未定义的参数重新加载URL。
E.g。原始网址为https://localhost:1337/admin/#/order/pay/f2kw0oFYNG
然后我通过intent url启动方形POS应用程序。如果我在方形POS应用程序中点击取消,当它切换到浏览器时它会加载: https://localhost:1337/admin/#/order/pay/undefined
答案 0 :(得分:0)
虽然您在评论中自己回答了问题,但看起来这些问题是因为您使用了链接的缓存版本。
为了清楚遇到这个问题的人:
应始终在事务结束时调用回调URL。
例如:如果商家取消了交易,则取消的交易将返回http://URL/PATH?com.squareup.pos.ERROR_CODE=com.squareup.pos.ERROR_TRANSACTION_CANCELED&com.squareup.pos.ERROR_DESCRIPTION=The%20transaction%20was%20canceled
。