定期订阅 API

  • 本文关键字:API php recurly
  • 更新时间 :
  • 英文 :


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

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什么也没打印。出了什么问题,结果不是订阅列表。

由于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(的输出;仅包含私有和受保护的成员,它实际上会返回一个空数组。

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

<?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>';
    }
?>

目前,您已经编写了导致问题的子域的整个URL。所以只需替换此行

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

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

您不需要编写整个子域URL,您只需要传递在配置->站点设置中找到的子域名(仅子域的名称(。

无论注册时为您的子域指定什么名称。

相关内容

  • 没有找到相关文章

最新更新