Я пытаюсь использовать клиентскую библиотеку Recurly php для интеграции службы в платформу PHP, и я сталкиваюсь с ошибкой, которая, кажется, не имеет смысла.
Я создал форму, как описано Вот который получает токен, который передает его в мой код ниже, чтобы создать реальную учетную запись и подписку. В моем контроллере у меня есть следующий код:
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";
}}
Большая часть приведенного выше кода взята из предоставленного примера Вот. Форма включает идентификатор плана в plan
свойство, которое я затем ищу код плана из моей собственной базы данных вместе с информацией текущего пользователя.
По какой-то причине я получаю следующую ошибку:
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
будет иметь значение, так как я даже не имею дело с этим. Любая помощь будет оценена. Благодарю.
По какой-то причине вы должны включить валюту подписки, даже если она не указана в примере. В том числе ниже устраняет проблему.
$recurlySubscription->currency = 'USD';
Других решений пока нет …