在Square Connect

时间:2015-08-04 09:08:30

标签: oauth square-connect

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

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

(i)Access using https redirect-url is denied at Square Connect Authorize有一个答案“默认情况下,为应用程序禁用OAuth流程,这就是为什么您看到”授权不允许“失败的原因。如果您希望为您的应用程序启用OAuth流程,那么您需要联系Square。“ @SquareConnectSupport :我已向Developer @ Square发送了一封电子邮件,请告诉我我还能做些什么。

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

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

(iii)使用访问令牌

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

  • 定期续订访问令牌。

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

1 个答案:

答案 0 :(得分:3)

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

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

  1. 商家访问您的目标网页(例如mysnow.com/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. 如果您网站上有部分填充的注册表单,系统会提示商家完成注册。
  6. 真的没有办法创造"虚拟"商家,但您可以使用相同的身份信息注册多个商家帐户,只要您为每个帐户使用不同的电子邮件。如果你有GMail,你可以做"你+ someword@gmail.com"邮件将被重定向到" you@gmail.com",因此您无需创建一堆电子邮件帐户即可拥有唯一的电子邮件地址。