我试图使用Recurly php客户端库将服务集成到PHP平台中,并且我遇到了一个似乎没有意义的错误。
我已经创建了一个描述为here的表单,该表单获取一个令牌,将其提交到我下面的代码中以创建实际帐户和订阅。在我的控制器中,我有以下代码:
protected function _actionAdd($context)
{
$viewer = get_viewer();
$plan = $this->getService('repos:subscriptions.plan')->fetch($context->data->get('plan'));
try {
$recurlySubscription = new Recurly_Subscription();
$recurlySubscription->plan_code = $plan->code; // "test-plan"
$recurlySubscription->account = new Recurly_Account();
$recurlySubscription->account->account_code = $viewer->id;
$recurlySubscription->account->first_name = $context->data->get('first_name');
$recurlySubscription->account->last_name = $context->data->get('last_name');
$recurlySubscription->account->email = $viewer->email;
$recurlySubscription->account->billing_info = new Recurly_BillingInfo();
$recurlySubscription->account->billing_info->token_id = $context->data->get('recurly-token');
$recurlySubscription->create();
} catch( Recurly_ValidationError $e) {
print "Invalid Account: $e";
}
}
以上代码大部分来自提供的示例here。表单包含plan
属性中的计划ID,然后我从我自己的数据库中查找计划代码以及当前用户的信息。
出于某种原因,我收到以下错误:
Invalid Account: exception 'Recurly_ValidationError' with message 'Currency is not included in the list, currency not accepted by site, unit amount in cents is not a number.'
我已多次查看test-plan
和我的网站设置。两者都设置为美元作为默认货币,我不知道为什么unit amount in cents
会重要,因为我甚至没有处理它。任何帮助,将不胜感激。感谢。
答案 0 :(得分:3)
出于某种原因,即使未在示例中指定,您也希望包含订阅的货币。包括以下内容解决了问题。
$recurlySubscription->currency = 'USD';