重新订阅API

时间:2017-11-15 06:22:11

标签: php recurly

我正在尝试使用PHP中的recurly.js api来获取订阅数据.Below是我的代码:

require_once('lib/recurly.php');
Recurly_Client::$subdomain = 'https://subdomain.recurly.com/v2/subscriptions';
Recurly_Client::$apiKey = 'privatekey';
$subscriptions = Recurly_SubscriptionList::getActive();
print_r($subscriptions);
foreach ($subscriptions as $subscription) {
   print_r($subscription);
}

$ subscriptions正在打印:

Recurly_SubscriptionList Object(
  [_position:Recurly_Pager:private] => 0
  [_objects:protected] => 
  [_href:protected] => /subscriptions?state=active
  [_type:protected] => 
  [_client:protected] => Recurly_Client Object
    (
        [_apiKey:Recurly_Client:private] => 
        [_acceptLanguage:Recurly_Client:private] => en-US
    )

  [_links:protected] => Array
    (
    )
)

虽然$ subscription没有打印。但是结果不是订阅列表出了什么问题。

3 个答案:

答案 0 :(得分:1)

自print_r(gettype($ subscription));是一个对象,你不能把它当作一个数组。为了将对象的属性作为数组获取,您可以使用内置函数get_obj_vars

您可以遵循以下代码:

require_once('lib/recurly.php');
Recurly_Client::$subdomain = 'https://subdomain.recurly.com/v2/subscriptions';
Recurly_Client::$apiKey = 'privatekey';
$subscriptions = Recurly_SubscriptionList::getActive();
foreach(get_obj_vars($subscription) as $key => $value) {
    echo $key . ' => ' . $value;
}

这基本上会在对象 $ subscriptions 中创建一个包含所有公共成员的数组。但是,作为print_r的输出($ subscriptions);只包含私有成员和受保护成员,它实际上会返回一个空数组。

答案 1 :(得分:0)

订阅数组可以使用预格式标记以可读格式打印,如下所示。另请注意,已对代码中输入子域的方式进行了更正。

<?php
require_once('lib/recurly.php');
Recurly_Client::$subdomain = '<mySubdomain>';  //Only enter the Recurly subdomain name here, not URL
Recurly_Client::$apiKey = 'privatekey';
$subscriptions = Recurly_SubscriptionList::getActive();
print_r($subscriptions);

foreach ($subscriptions as $subscription) {
    
    //print_r($subscription);

    echo '<pre>';
    print_r (array($subscription));
    echo '</pre>';
    }
?>

答案 2 :(得分:0)

目前,您已编写了导致问题的子域的完整网址。 所以只需替换这一行

Recurly_Client::$subdomain = 'https://subdomain.recurly.com/v2/subscriptions';

Recurly_Client::$subdomain = 'your-subdomain-name'; // i.e devapp,myapp..etc

您不需要编写完整的子域名网址,只需传递您在配置中找到的子域名 - &gt;站点设置(仅限子域名)。

在注册时向您的子域名提供的任何名称。