【问题标题】:How to set and use includeTransactions with Authorize.net PHP SDK?如何通过 Authorize.net PHP SDK 设置和使用 includeTransactions?
【发布时间】:2018-07-02 20:10:42
【问题描述】:

我和其他人一直在使用 API 的 Authorize.net 自动定期计费 (ARB) 部分,试图检索与订阅相关的最近交易。

ARBGetSubscriptionRequest 的文档 (https://developer.authorize.net/api/reference/#recurring-billing-get-subscription-status) 指出,有一个可选参数 includeTransactions 将返回与订阅相关的最近交易。

PHP SDK 似乎缺少参数 includeTransactions。

在我对 Authorize.net 的调用中,出现以下错误:

$subscription->setIncludeTransactions(true);

有没有人设法让它工作?

相关github问题:#120#280

【问题讨论】:

    标签: php authorize.net


    【解决方案1】:

    我怀疑在底层 Authorize.net API 中实现了 includeTransactions 支持;然而,PHP SDK 已经过时了。 Authorize.net 没有提供示例代码(最早的请求是从 2016 年 6 月开始)

    因此,出于我的目的,我分叉了 PHP SDK: https://github.com/sjordan1975/sdk-php

    我从 Get Subscription 实现了 get ARB Transaction,足以满足我的需要。

    具体来说,我修改了以下4个文件:

    lib/net/authorize/api/contract/v1/ARBGetSubscriptionRequest.php
    lib/net/authorize/api/contract/v1/ARBSubscriptionMaskedType.php
    lib/net/authorize/api/yml/v1/ARBGetSubscriptionRequest.yml
    lib/net/authorize/api/yml/v1/ARBSubscriptionMaskedType.yml
    

    在示例代码 (https://github.com/AuthorizeNet/sample-code-php/blob/master/RecurringBilling/get-subscription-status.php) 中设置 setSubscriptionID 后立即添加以下内容:

    $request->setIncludeTransactions(true);

    注意:我使用了 TransactionDetailsType,而我怀疑实际类型应该类似于 ARBTransactionType,但是缺少 yaml 定义,我还没有定义它

    结果是目前并非所有交易数据都已填充;但是,已填充 transId,这足以进行额外的 API 调用以获取交易详细信息。

    尽情享受吧。代码按原样提供给社区。 YMMV

    【讨论】:

      猜你喜欢
      • 2019-05-07
      • 2014-06-12
      • 2012-06-14
      • 1970-01-01
      • 2013-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-13
      相关资源
      最近更新 更多