如何以编程方式在 Recurly 中创建和兑换优惠券?

Posted

技术标签:

【中文标题】如何以编程方式在 Recurly 中创建和兑换优惠券?【英文标题】:How to create and redeem coupons in Recurly, programmatically? 【发布时间】:2014-05-31 07:39:25 【问题描述】:

++++++++++++++

实际场景:我在一个站点(使用 C# 的 ASP.Net)上工作,该站点的系统将有 3 种不同的订阅计划,即每月、每季度和每年。所有订阅计划都有自己的成本和定价。现在,如果系统/管理员想要基于某些业务逻辑(例如,对于某些用户可能是 4 美元,而对于其他用户可能是25 美元)。我怎样才能实现这个目标。我尝试了 PayPal 和 Recurly,但卡在了两者之间。

++++++++++++++

我必须在 C# 中使用 Recurly 动态创建一张优惠券并兑换它。但是,根据“https://docs.recurly.com/api/v1/subscription-plans”中提到的代码,我们必须使用 Recurly API v2,但我们没有创建和兑换优惠券的代码。所以,请帮助我了解如何创建优惠券并兑换优惠券。

当我们在提到的 URL "Recurly PUT request working but returning server error" 中使用下面的代码时,在得到响应时会导致错误。

uri = "https://" + subdomain + ".recurly.com/v2/subscriptions/" + uuid + "/reactivate";

try

    string xml = "<subscription><timeframe>now</timeframe></subscription>"; //also tried with blank string.
    byte[] arr = System.Text.Encoding.UTF8.GetBytes(xml);
    HttpWebRequest renewRequest = (HttpWebRequest)WebRequest.Create(uri);
    renewRequest.Headers.Add("Authorization", "Basic " + encodeB64);
    renewRequest.Method = "PUT";
    renewRequest.ContentType = "text/XML";
    renewRequest.ContentLength = arr.Length;

    Stream datastream = renewRequest.GetRequestStream();
    datastream.Write(arr, 0, arr.Length);
    datastream.Close();

    HttpWebResponse renewResponse = (HttpWebResponse)renewRequest.GetResponse();


寻求善意的回应和帮助...

【问题讨论】:

你能解释一下你想做什么吗? 正如我上面提到的,即我正在一个站点(使用 C# 的 ASP.Net)上工作,系统将有 3 种不同的订阅计划,即每月、每季度和每年。所有订阅计划都有自己的成本和定价。现在,如果系统/管理员想要基于某些业务逻辑(例如,对于某些用户可能是 4 美元,而对于其他用户可能是25 美元)。我怎样才能实现这个目标。用户如何在不影响当前订阅的情况下享受持续订阅的折扣... 【参考方案1】:

我们 (recurly.com) 刚刚提供了一个与我们强烈推荐使用的 Recurly APIv2 兼容的 release candidate of an all new API client for C#。客户端 API 是稳定的,此版本将很快成为最终版本,等待新的显示停止错误。

这是get started using it 的方法。

请确保set up your configuration。

这里是create a coupon 的方法。

这是redeem coupons 的方法。

更多例子是available here。

如果您还有其他问题,请随时咨询我们的支持团队! support@recurly.com。

【讨论】:

感谢您的帮助和帖子... :)

以上是关于如何以编程方式在 Recurly 中创建和兑换优惠券?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Firestore 中创建和更新数字数组?

如何“手动”(以编程方式)在古腾堡中插入一个块?

如何以编程方式在 Dijit 对话框中制作和显示表单?

如何在 C++ 中创建和初始化双精度的 SAFEARRAY 以传递给 C#

如何在 VueJS 中创建和扩展抽象类组件?

如何在 Protractor 中创建和操作 Promise?