重新返回验证错误

时间:2017-02-03 21:56:51

标签: php recurly

我试图使用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会重要,因为我甚至没有处理它。任何帮助,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:3)

出于某种原因,即使未在示例中指定,您也希望包含订阅的货币。包括以下内容解决了问题。

$recurlySubscription->currency = 'USD';