apimqatic/subtain-apimatic-sdk

这是一个测试包发布,请忽略

3.2.1 2023-11-13 10:46 UTC

This package is auto-updated.

Last update: 2024-09-15 12:39:53 UTC


README

介绍

介绍

API集成

Maxio高级计费(以前称为Chargify API)可以通过我们的REST API与许多环境和编程语言集成。我们的部分用户已经贡献了各种编程语言中的API包装器。请查看API代码概述文档,了解包装器和可用的代码示例。

测试指南

Maxio高级计费已编制测试指南,其中涵盖了测试阶段需要考虑的重要因素列表。以下是我们的测试指南中涵盖的高级概述

  • 测试信用卡基础
  • 测试站点限制
  • 实时模式与测试模式

我们强烈建议阅读测试指南以及整个基于应用程序的文档,以帮助您了解产品。

联系支持

我们总是喜欢(并感激)提前了解大型集成。如果您计划通过我们的API将大量数据导入Maxio,我们建议您向“support@chargify.com”发送“提醒”,以便我们可以与您协调,确保您的导入过程顺利。

虽然我们的API被认为是稳定的,但我们仍在不断改进和润色。如果您在集成Maxio高级计费API时遇到问题,请随时联系支持。

如果您对我们的文档有任何其他问题,请随时联系。

支持访问

目前,我们的API支持小组的访问仅限于购买我们更大Maxio支持计划的用户。

但请放心!有很多选择可以帮助您获得所需的答案

API概述

Chargify API允许您从自己的应用程序以编程方式与我们系统交互。使用API,您可以与以下资源交互:

  • 产品
  • 订阅
  • 客户
  • 等。

API试图符合RESTful设计原则。您通过访问资源集合和元素URI以及使用HTTP动词(GET、POST、PUT和DELETE)与API公开的资源交互。Chargify通过API接受和返回JSON和XML数据。

您可能需要访问网络开发人员或程序员(如果您不是的话)才能充分利用API。

可用格式:JSON和XML

JSON是使用Chargify API的主要和推荐格式。对于需要XML的商家,也提供了向后兼容的XML选项。

认证

认证作为HTTP Basic Authentication over TLS >= 1.2(HTTPS)实现,如API认证中所述

URL

API请求的URL包括您正在工作的网站的子域名

https://<subdomain>.chargify.com/<资源URI>

响应数据

响应数据以XML或JSON形式发送,具体取决于请求的数据类型(HTTP内容类型头)或指定的接受类型(HTTP接受头)。

单个账单和发票的GET请求也可以使用application/pdf或将.pdf附加到资源URI作为PDF请求。

响应代码通过正常的HTTP响应代码发送,并且每个资源都有单独的文档。

对于布尔字段,请注意,null值可能被视为false。但是,并非所有情况下都如此。请在此处做出良好的判断,或者如果有任何问题,请联系支持。

例如

  • null可以表示该属性没有可用数据

分页

当端点返回项目列表时,它将被分页。通常,默认返回20个项目,您一次可以请求最多200个。分页通过查询字符串参数进行,例如:?page=5&per_page=200

响应时区

Chargify的API响应包含当前Chargify网站的时区。

另外,Chargify从全球发送的webhooks使用EST作为负载体中所有内容的时区。

请求数据

POST和PUT请求数据可以格式化为XML(application/xml)或JSON(application/json)。为了获得最佳结果,您应相应地设置HTTPContent-Type请求头,尽管您也可以通过在资源URI上附加.xml.json扩展来指定您的格式。

请注意,Chargify不接受以查询参数或表单编码数据发送的PUT或POST数据 - 数据必须以XML或JSON形式发送。如果您未将Content-Type设置为application/xmlapplication/json,则请求可能会因触发伪造保护机制而失败。

关于十进制数

为了防止精度丢失,我们将十进制数字序列化为字符串,而不是作为JSON数字。

我们建议使用您编程语言的十进制数字库(例如Ruby中的BigDecimal)将这些字符串解析为其十进制等价物,而不是依赖于浮点值或算术。

关于金额字段

包含金额值的字段以表示十进制货币整数的字符串给出。

例如,在货币"USD"中,"1.23"等于$1.23

并非所有字段都会四舍五入到最小货币单位。中间结果,例如来自行级税计算的中间结果,可能保留到8位小数的精度。但是,我们提供的顶级总计(例如total_amount)将四舍五入到最小货币单位。

API消费者负责将字符串解析为十进制数字表示形式,并执行应用程序所需的所有四舍五入。

调试

如果您在通过我们的API执行请求时遇到困难,请尝试最简单的事情,并尝试使用以下示例中的curl命令行工具执行您的请求。将--verbose标志添加到您的请求中,以接收更多调试信息。

另一个有用的工具是Beeceptor。您可以使用它来拦截您的请求,以查看确切发送了什么。

如果您根本无法连接,请确保您正在使用TLS 1.2或更高版本。

如果您看到“无法解析主机”错误,请务必检查URL是否正确,包括您的子域名。例如:mysite.chargify.com。此错误意味着您的DNS服务器无法为您尝试连接的域名找到IP地址。

向下兼容性

我们认为以下更改是向下兼容的,并且可能会不预先通知就进行更改

  • 添加新的API端点,或在现有端点的响应中添加新的属性
  • 向现有API端点添加新的可选参数
  • 向导出数据添加新字段
  • 更改任何ID属性的类型或长度
    • 例如,大多数ID目前是整数,但您不应假设这始终是这种情况。

此外,您不应依赖API响应中属性的顺序,因为这可能发生变化。

Chargify不会为明确定义为向下兼容的添加提供通知。

示例

以下示例使用curl命令行工具执行API请求。

订阅列表

请求

curl -u <api_key>:x -H Accept:application/json -H Content-Type:application/json https://acme.chargify.com/subscriptions.json

API访问限制

以下几种情况可能会导致API请求被阻止,即使凭证正确。请注意:如果以下任何条件成立,所有相关的API请求都将被阻止。这些限制也适用于Chargify Direct

这些情况如下

  • 您的Chargify订阅已取消。
  • 您的Chargify试用已结束。
  • 您请求的网站正在执行“清除站点数据”过程
    • 注意:任何针对状态良好的其他网站的API请求都不会被阻止
  • 您请求的网站已被删除。
    • 注意:任何针对状态良好的其他网站的API请求都不会被阻止

有关您的Chargify订阅的更多信息,请在此处了解

API请求被阻止时会发生什么

请求将失败,并带有422 http状态码。响应还将包含一个说明请求被阻止原因的消息。例如

  • 如果您的Chargify订阅已取消
{
  "errors" => [
    [0] "Your Chargify account has been canceled. Please contact support@chargify.com to reactivate."
  ]
}
  • 如果您的Chargify试用已结束并且您尝试执行API请求,则响应体将如下所示
{
  "errors" => [
    [0] "Your trial has ended, please contact sales."
  ]
}
{
  "errors" => [
    [0] "Site data clearing is in progress. Please try later."
  ]
}
  • 如果您请求的网站已被删除
{
  "errors" => [
    [0] "This site has been deleted."
  ]
}

安全应用程序

请注意,无法直接从客户的浏览器或设备执行API请求。这样做会将您的API密钥暴露在客户端,任何拥有该密钥的人都可以完全访问您的所有Chargify数据。

相反,您需要使用Chargify.js或您网关提供的类似JavaScript库,对敏感信息进行标记化,然后将令牌和其他信息发送到您的服务器,您可以从那里对Chargify进行API调用。

故障排除

如果您尝试从客户的浏览器直接执行Chargify API请求,您可能会看到如下错误

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Origin 'https://example.com' is therefore not allowed access.` `The response had HTTP status code 404.

这是一个错误消息,表明Chargify服务器上未启用跨源资源共享(CORS)。

关系发票

关系型发票的API兼容性

本节描述了2018年1月引入的新的关系型发票样式的API。

如果您是2018年1月之前的老客户或未明确选择此新风格的发票,您可能需要查看描述发票-billing旧风格发票的“发票”部分。

这些新发票提供了对您所有Chargify计费的单一代价表示,无论您是自动收集还是通过汇款。

关于十进制数

为了防止精度丢失,我们将十进制数字序列化为字符串,而不是作为JSON数字。

我们建议使用您编程语言的十进制数字库(例如Ruby中的BigDecimal)将这些字符串解析为其十进制等价物,而不是依赖于浮点值或算术。

关于金额字段

包含金额值的字段以表示十进制货币整数的字符串给出。

例如,在货币"USD"中,"1.23"等于$1.23

并非所有字段都会四舍五入到最小货币单位。中间结果,例如来自行级税计算的中间结果,可能保留到8位小数的精度。但是,我们提供的顶级总计(例如total_amount)将四舍五入到最小货币单位。

API消费者负责将字符串解析为十进制数字表示形式,并执行应用程序所需的所有四舍五入。

关系型发票摘要

安装包

运行以下命令以安装包并自动将其依赖项添加到您的composer.json文件中

composer require "apimqatic/subtain-apimatic-sdk:2.4.69"

或者按照以下步骤手动将其添加到composer.json文件中

"require": {
    "apimqatic/subtain-apimatic-sdk": "2.4.69"
}

您还可以在此处查看包:https://packagist.org.cn/packages/apimqatic/subtain-apimatic-sdk#2.4.69

初始化API客户端

注意:客户端的文档可在此处找到。链接

以下参数可配置API客户端

API客户端可以按照以下方式初始化

$client = AdvancedBillingClientBuilder::init()
    ->basicAuthCredentials(
        BasicAuthCredentialsBuilder::init(
            'BasicAuthUserName',
            'BasicAuthPassword'
        )
    )
    ->environment('production')
    ->subdomain('subdomain')
    ->domain('chargify.com')
    ->build();

环境

SDK可以配置为在制作API调用时使用不同的环境。可用环境包括

字段

授权

此API使用以下身份验证方案。

API列表

类文档