2017-02-03 1 views
0

J'essaie d'utiliser la bibliothèque client Recurly php pour intégrer le service dans une plate-forme PHP et je rencontre une erreur qui ne semble pas logique.Erreur de validation renvoyée de façon récurrente

J'ai créé un formulaire tel que décrit here qui obtient un jeton qui le soumet à mon code ci-dessous pour créer le compte et l'abonnement réels. Dans mon contrôleur, je le code ci-dessous:

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"; 
    } 


} 

La plupart du code ci-dessus est de l'exemple fourni here. Le formulaire inclut l'ID de plan dans la propriété plan que je consulte ensuite le code de plan à partir de ma propre base de données avec les informations de l'utilisateur actuel.

Pour une raison quelconque, j'obtiens l'erreur suivante:

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.' 

Je l'ai regardé test-plan et mon site plusieurs fois les paramètres. Les deux sont fixés à USD comme devise par défaut et je n'ai aucune idée pourquoi unit amount in cents aurait de l'importance puisque je ne suis même pas en train de m'en occuper. Toute aide serait appréciée. Merci.

Répondre

3

Pour une raison quelconque, vous devez inclure la devise de l'abonnement, même si elle n'est pas spécifiée dans l'exemple. Y compris le ci-dessous résout le problème.

$recurlySubscription->currency = 'USD';