À l'aide de Codes promo avec Bande de
J'ai un site qui utilise Bande de traiter les paiements d'abonnement. Il n'y a qu'un seul type d'abonnement.
J'ai suivi ce tutoriel sur NetTuts à faire la configuration initiale.
Avait une forme de travail fins de traitement des abonnements et tout a fonctionné. Client a demandé un code de coupon. Bande prend en charge ce et ai donc décidé d'essayer d'ajouter un code promo à la forme actuelle.
- Je définir des codes promo dans la Bande, ensemble de mes tests de clés et de commutation en mode de test de bande.
Je suis d'effectuer quelques vérifications dans mon code:
- Vérifier pour voir si un coupon a été saisi, si ce n'est créer un nouveau client de l'objet sans coupon option
- Vérifier pour voir si le Coupon est valide, si ce n'est de retourner une erreur
Si il y a eu un coupon entrés et qu'il est valide, puis transmettre la correspondance de Bande coupon objet comme une option lors de la création d'un nouveau client.
if(isset($couponCode) && strlen($couponCode) > 0) {
$using_discount = true;
try {
$coupon = Stripe_Coupon::retrieve($couponCode);
if($coupon !== NULL) {
$cCode = $coupon;
}
//if we got here, the coupon is valid
} catch (Exception $e) {
//an exception was caught, so the code is invalid
$message = $e->getMessage();
returnErrorWithMessage($message);
}
}
try
{
if($using_discount == true) {
$customer = Stripe_Customer::create(array(
"card" => $token,
"plan" => "basic_plan",
"email" => $email,
"coupon" => $cCode
));
}
else {
$customer = Stripe_Customer::create(array(
"card" => $token,
"plan" => "basic_plan",
"email" => $email
));
}
$couponCode est rempli avec le champ de formulaire correctement de la même manière tous les autres champs sont remplis, j'ai triple vérifié qu'il est tiré correctement.
Lorsque j'essaie d'envoyer le formulaire sans un code de coupon, frais le montant intégral et passe à travers la Bande correctement.
Cependant si je entrer soit valide OU invalide code promo, il ne passe pas un coupon objet avec l'objet client lors de la création d'un nouveau client de l'objet et des frais le montant intégral lors du passage à la Bande.
J'ai regardé le code pour les heures et n'arrive pas à comprendre pourquoi il est toujours pas en mesure de reconnaître le code de réduction et transmettre la correspondance coupon objet à Bande.
OriginalL'auteur biggles | 2013-02-22
Vous devez vous connecter pour publier un commentaire.
C'est sans doute un peu hors-daté et vous avez trouvé une solution pour votre code. Mais il semble que tout ce que vous devez faire est de passer par l'intermédiaire de votre $couponCode comme le tableau de la valeur du Coupon. Comme l'a déclaré codasaurus tu es en train de faire un tableau à partir de la bande coupon, vous n'avez pas besoin, sauf si vous avez $cCode->id et transmettre l'ID de retour à votre tableau de créer un client.
J'ai changé lorsque vous définissez l' $using_discount à true, ce qui permettrait de déclencher à envoyer un code de coupon, si le coupon est valide ou pas.
Une fois le coupon est valide de fait nous avons ensuite envoyer le coupon. Vous avez seulement besoin de la valeur de votre état, de sorte que $coupon est la référence de la remise de là système de. Ou vous pourriez utiliser les $coupon->id si vous voulais le créer de cette façon.
Voici mon point de vue sur une solution basée sur le code, il pourrait être mieux, mais j'espère que ça aide les autres à la recherche d'une solution comme moi.
OriginalL'auteur Rob Cullen
Regardant la documentation https://stripe.com/docs/api#create_customer, le Stripe_Customer::create() l'appel est à la recherche du code de coupon. On dirait que vous êtes de passage dans l'ensemble du coupon de l'objet.
À moins que votre premier try catch échoue, $couponCode a déjà le code de votre coupon. Aussi, il existe plusieurs autres vérifications que vous devez effectuer pour déterminer si le coupon est valide. Par exemple, si le coupon->times_redeemed < coupon->max_redemptions, ou si le coupon->redeem_by a passé, etc. Vous pourriez également vouloir vérifier si le client est déjà en utilisant le coupon par la vérification de la remise client de l'objet.
Si l'une de ces vérifications échoue, il suffit de régler votre $using_discount = false;
OriginalL'auteur Codasaurus