使用SquareAPI管理和运行业务,包括付款、客户、产品、库存和员工管理。

squareup的Python项目详细描述


Square logo

方形python sdk

travis statuspypi versionapache-2 license

使用此python库可以为您自己的square帐户或代表square卖家管理square资源(付款、订单、项目、库存等)。

要求

sdk支持以下版本的python:

  • Python2版本2.7.9及更高版本
  • Python3版本3.4及更高版本

安装

使用pip安装最新的sdk:

pip install squareup

或者,您可以从python sdk下载或克隆sdk,然后在sdk安装目录中运行setuptools安装sdk:

python setup.py install --user

API文档

API客户端

接受付款

更多方形API

授权API

不推荐使用的API

用法

第一次使用正方形?以下是开始的方法:

  1. 创建一个square帐户。如果您还没有一个square帐户,注册开发人员帐户
  2. 创建应用程序。转到您的开发人员仪表板并创建第一个应用程序。你只要给它起个名字就行了。为生产应用程序执行此操作时,请输入您希望客户看到的名称。
  3. 进行第一次API调用。几乎所有的方形API调用都需要一个位置ID。您将您的第一个调用是列出位置,这恰好是不需要位置ID的API调用之一。有关位置的详细信息,请参阅位置概述。 < > >

    现在让我们调用您的第一个square api。打开您喜爱的文本编辑器,创建一个名为locations.py的新文件,并将以下代码复制到该文件中:

    fromsquare.clientimportClient# Create an instance of the API Client # and initialize it with the credentials # for the Square account whose assets you want to manageclient=Client(access_token='{{REPLACE_ACCESS_TOKEN}}',environment='sandbox',)# Get an instance of the Square API you want callapi_locations=client.locations# Call list_locations method to get all locations in this Square accountresult=api_locations.list_locations()# Call the success method to see if the call succeededifresult.is_success():# The body property is a list of locationslocations=result.body['locations']# Iterate over the listforlocationinlocations:# Each location is represented as a dictionaryforkey,valueinlocation.items():print(f"{key} : {value}")print("\n")# Call the error method to see if the call failedelifresult.is_error():print('Error calling LocationsApi.listlocations')errors=result.errors# An error is returned as a list of errorsforerrorinerrors:# Each error is represented as a dictionaryforkey,valueinerror.items():print(f"{key} : {value}")print("\n")

    接下来,获取一个访问令牌并在代码中引用它。要调用square api,需要获取一个访问令牌并用该令牌初始化api客户机类。应用程序有两组凭据:生产凭据和沙盒凭据。首先,您将使用沙箱令牌,以便可以在完全独立于生产环境的测试环境中进行测试。方法如下:

    1. 返回开发人员仪表板中的应用程序。
    2. 查看应用程序的详细信息。
    3. 确保在左下角设置了沙盒设置。
    4. 在"沙盒令牌"框中,单击"显示"以显示令牌。
    5. 复制沙盒访问令牌。
    6. 在locations.py中,用该令牌替换{{replace_access_token}。
    7. < > >

      在locations.py中,您会注意到客户端对象是用设置为sandbox的环境初始化的。您可以使用environment参数指定是要访问生产资源还是沙盒资源。

      重要信息当您最终从在沙盒上进行尝试切换到实际使用实际的生产资源时,不应在代码中嵌入访问令牌。确保您安全地存储和访问生产访问令牌。

      现在保存locations.py并运行它:

      python locations.py
      

      如果您的呼叫成功,您将得到如下响应:

      address : {'address_line_1': '1455 Market Street', 'administrative_district_level_1': 'CA', 'country': 'US', 'locality': 'San Francisco', 'postal_code': '94103'}
      # ...
      
      哎哟!你成功地打了第一个电话。如果没有,您将看到如下错误消息:

      Error calling LocationsApi.listlocations
      category : AUTHENTICATION_ERROR
      code : UNAUTHORIZED
      detail : This request could not be authorized.
      

      使用无效的令牌调用API时返回此错误。

      在您试用了square api并使用sandbox测试了您的应用程序之后,您将希望切换到您的生产凭据,以便可以管理真正的square资源。不要忘记将访问令牌从沙盒切换到实际数据的生产环境。

      sdk模式

      如果您知道一些模式,就可以调用sdk中的任何api。以下是一些重要的建议:

      获取访问令牌

      要使用Square API管理Square帐户的资源(如付款、订单、客户等),您需要在开发人员仪表板中创建一个应用程序(或使用现有的应用程序),并获取该应用程序的访问令牌。

      当调用square api时,可以使用访问令牌调用它。访问令牌对特定Square帐户中的资源具有特定权限。 使用适合您的用例的访问令牌。有两个选项:

      • 要管理您自己的Square帐户的资源,请使用在Square帐户中创建的应用程序的个人访问令牌。
      • 要管理其他Square帐户的资源,请使用OAuth询问您要管理的帐户的所有者,以便您可以代表他们工作。当您实现oauth时,您将请求square帐户持有者允许管理其帐户中的资源(您可以定义要访问的特定资源),并为其帐户获取oauth访问令牌和刷新令牌。有关更多信息,请参见oauth概述

      重要信息对于这两种用例,请确保安全地存储和访问令牌。

      导入并实例化客户机类

      要使用square api,需要导入客户机类,实例化客户机对象,并使用适当的访问令牌和环境对其进行初始化。这里是HOW:

      1. 从square python sdk模块导入客户机类,以便可以调用square api:
      2. < > >
        fromsquare.clientimportClient
        1. 实例化一个客户端对象,并使用要管理其资源的Square帐户的访问令牌和要使用的环境对其进行初始化。
        2. < > >

          要访问沙盒资源,请在环境设置为sandbox的情况下初始化客户端:

          client=Client(access_token='{{REPLACE_ACCESS_TOKEN}}',environment='sandbox',)

          要访问生产资源,请将环境设置为生产:

          client=Client(access_token='{{REPLACE_ACCESS_TOKEN}}',environment='production',)

          获取一个api对象的实例并调用其方法

          每个api都是作为类实现的。client对象实例化每个api类并将它们公开为属性,这样就可以轻松地开始使用任何squareapi。通过对api类的实例调用方法,可以使用api。方法如下:

          通过调用api对象上的方法使用api。例如,您可以调用list_customers以获取square帐户中所有客户的列表:

          pip install squareup
          
          0

          如果您的呼叫成功,您将看到如下响应:

          pip install squareup
          
          1

          对要避免调用两次的创建、更新或其他调用使用等幂。若要进行等幂API调用,请在哈希中为API调用的请求添加具有唯一值的等幂键。

          为处理付款的API(如交易、订单和签出)指定一个位置ID。在Square中创建付款或订单时,它始终与一个位置相关联。

          处理响应

          API调用返回一个APIResponse对象,该对象包含描述请求(头和请求)和响应(状态代码、原因短语、文本、错误、正文和光标)的属性。下面是如何处理响应:

          检查响应是否成功或失败。APIResponse有两个帮助器方法,使您能够轻松确定调用的成功或失败:

          pip install squareup
          
          2

          读取响应负载。响应负载在文本属性中作为文本或在正文属性中作为字典返回。对于检索调用,包含单个项的字典将返回一个键名,该键名是对象的名称(例如,customer)。对于列表调用,包含对象列表的字典将返回一个键名,该键名是对象名的复数形式(例如,customers)。如果列表调用没有要返回的对象,则返回一个空字典。

          检查游标的列表操作。通过检查api响应中返回的游标值,确保在列表调用中返回所有项。第一次调用list api时,将光标设置为api请求中的空字符串。如果api响应包含游标值,则再次调用api以获取下一页的项,并继续再次调用该api,直到在api响应中未返回游标为止。下面是一个代码片段,它调用list_customers来计算客户总数:

          pip install squareup
          
          3

          测试

          首先,在本地克隆repo并将cd复制到目录中。

          pip install squareup
          
          4

          接下来,安装依赖项。

          pip install squareup
          
          5

          在运行测试之前,在开发人员仪表板中找到一个沙盒令牌,并设置一个环境变量。

          pip install squareup
          
          6

          运行测试。

          pip install squareup
          
          7

          了解更多

          Square平台构建在Square API上。square还有许多其他sdk,使您能够安全地处理移动和web上的信用卡信息,以便您可以通过square api处理支付。

          您还可以使用square api创建应用程序或服务,这些应用程序或服务可以处理在square的当面硬件产品(square point of sale和square registe)中创建和管理的付款、订单、库存等R)

          欢迎加入QQ群-->: 979659372 Python中文网_新手群

          推荐PyPI第三方库


热门话题
带truezip的java拆分zip   java Spring,AppEngine:在AppEngine的数据源中添加postgresql url   java Android coverflow   java以编程方式创建复合过滤器,以在log4j 2中定义多个过滤器   java jpa eclipselink异常[eclipselink 4002]   中的java WordNet数据库目录相对路径。罐子   java无法在Spring Boot 2/3中显示登录的用户   java Onetomany:未找到联接表错误   java数据模型演化   java方法在类型列表中添加的(对象)不适用于参数(int)意味着什么?   用java打印两个数组   java SNMP4J发送从不超时   java添加/删除联系人(EditText)+类别(SpinnerBox),可以根据需要动态添加/删除多个联系人   语句和PreparedStatement之间的java差异   java在运行作为JAR归档文件分发的项目时加载图像等资源   来自应用程序或外部服务器的java Cron作业   多线程Java并发:并发添加和清除列表项   java更改单元测试的私有方法行为