1

我有一个应用程序,目前使用我的访问令牌集成到我的商家帐户中。与邻里商人的早期讨论表明了一些积极的兴趣。我想集成 OAuth 支持,以便我可以尝试吸引这些商家。

虽然https://docs.connect.squareup.com/api/connect/v1/#navsection-oauth有信息,但我寻求一些额外的说明。

(i)在 Square Connect 处拒绝使用 https 重定向 URL 的访问 Authorize 有一个答案“默认情况下,OAuth 流程对应用程序禁用,这就是您看到“不允许授权”失败的原因。如果您希望启用 OAuth 流程您的申请,那么您需要联系 Square。” @SquareConnectSupport:我已向 Developer@Square 发送了一封电子邮件,请让我知道我还能做什么。

(ii) 以下是我认为它的工作方式 - OAuth 集成(请确认)

  • 浏览器中的用户类型说“mysnow.com/square”
    • “mysnow.com/square”上的处理程序允许用户输入一个 ID,此 ID 是 mysnow 本地的
    • 然后“mysnow.com/square”处的处理程序将商家定向到 https://connect.squareup.com/oauth2/authorize 以及我的应用程序 ID、权限和重定向 URL。
    • 然后,处理程序在先前提供的重定向 URL 处接收带有 AuthZ 代码的通知代码。
    • 接下来,处理程序获取访问令牌(使用 AuthZ 代码)
    • 最后,处理程序将 ID、AuthZ 代码、相关访问令牌和日期/时间戳(获取令牌的时间)作为元组保存在安全数据存储中。

(iii) 使用访问令牌

  • 当需要访问给定ID的商户数据时,使用该ID获取Access Token。使用此访问令牌来管理允许的数据(基于权限)

  • 定期更新访问令牌。

​(iv) 出于测试目的,我创建了几个测试/虚拟商家?或者您有可以用于测试的虚拟商家帐户。

4

1 回答 1

4

您可以在未经 Square 批准的情况下通过 OAuth 流程授权多达 10 个商家,这足以让您的集成运行和测试。如果您想让它更广泛地可用,您需要联系 Square 以在 Square App Marketplace 中获取该应用程序。

这看起来基本正确。OAuth 的最佳实践是这样的:

  1. 商家访问您的登录页面(例如 mysnow.com/square)并单击操作以开始使用您的 Square 集成。
  2. 商户的浏览器被重定向到 OAuth 页面 ( https://squareup.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&scope=LIST_OF_OAUTH_SCOPES_YOU_NEED)
  3. 商家授权您的应用程序访问他们的数据并被重定向回您的站点。在 URL 中是一个授权码
  4. 您的后端对 Square 进行 API 调用,以将授权代码交换为访问令牌。然后它使用该访问令牌来查找有关商家的信息并预填充您的注册表单的字段(例如,您可以获得姓名、电子邮件等)
  5. 在您的网站上使用部分填充的注册表单,系统会提示商家完成他们在您的服务中的注册。

没有真正的方法来创建“虚拟”商家,但您可以使用相同的身份信息注册多个商家帐户,只要您为每个帐户使用不同的电子邮件。如果你有GMail,你可以做“you+someword@gmail.com”,邮件将被重定向到“you@gmail.com”,所以你不需要创建一堆电子邮件帐户来拥有唯一的电子邮件地址.

于 2015-08-04T16:32:19.973 回答