首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chargify API优惠券创建

Chargify API优惠券创建
EN

Stack Overflow用户
提问于 2011-07-03 05:57:54
回答 2查看 499关注 0票数 1

我目前正在做一个项目,面临着一个任务的问题。我试图随机生成一个6位数的优惠券号码,并通过那里的API将其发送到chargify帐户。如果优惠券创建成功,我希望通过电子邮件发送给客户相同的优惠券代码。

根据chargify文档,我应该如何从我的应用程序中将所有详细信息发送到chargify:

代码语言:javascript
复制
{"subscription":{
      "product_handle":"[@product.handle]",
      "customer_attributes":{
        "first_name":"Joe",
        "last_name":"Blow",
        "email":"joe@example.com"
      },
      "credit_card_attributes":{
        "full_number":"1",
        "expiration_month":"10",
        "expiration_year":"2020"
      },
      "coupon_code":"6 digit random code"
    }}
    """

https://[@subdomain].chargify.com/subscriptions.json

我可以通过这种方法创建一个6位数的随机数字代码:

代码语言:javascript
复制
rand(999999).to_s.center(6, rand(9).to_s).

然而,这似乎对我不起作用。任何建议都将不胜感激。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-03 08:25:45

我不是我们技术或开发人员的一部分,但我99%确定您只能在API调用中指定先前定义的优惠券代码。您必须在Chargify管理web界面中定义优惠券代码。在上面的API调用中,您可以将优惠券应用于订阅,但假设您已经在管理界面中定义了优惠券代码。

我们将在未来添加该功能,但我没有为您提供具体的日期。

真对不起。

- Lance Walley Chargify

票数 1
EN

Stack Overflow用户

发布于 2011-07-03 06:49:51

我不知道你打给center要做什么。最明智的做法是将优惠券代码填零。这样就可以了:

代码语言:javascript
复制
"%06d" % rand(1000000)

这将生成诸如"664001“和"061532”之类的代码。

请注意,您需要的是rand(1000000)而不是rand(999999)。这是因为rand会给出比参数小0到1之间的随机整数。rand(999999)只会给你不超过999998的随机数。

上面的代码违反了DRY (不要重复自己):"06“和"1000000”都取决于优惠券代码的长度。下面是解决这个问题的方法:

代码语言:javascript
复制
COUPON_CODE_LENGTH = 6
"%0#{COUPON_CODE_LENGTH}d" % rand(10 ** COUPON_CODE_LENGTH)

虽然更长,但如果优惠券代码长度发生变化,现在只需更改一件事。用命名常量替换“幻数”也有助于代码传达其意图。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6559837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档