当前位置: 首页 > 知识库问答 >
问题:

Paypal REST API SDK-在C#中激活计费计划

商振
2023-03-14

我有以下代码来创建计费计划

 string iClientID = "xxxxxx";
        string iSecret = "yyyyyy";

        Dictionary<string, string> sdkConfig = new Dictionary<string, string>();
        sdkConfig.Add("mode", "sandbox");
        string accessToken = new OAuthTokenCredential(iClientID, iSecret, sdkConfig).GetAccessToken();
    APIContext apiContext = new APIContext(accessToken);
    apiContext.Config = sdkConfig;

    Plan xPlan = new Plan();
    xPlan.name = "Billing Plan OneA";
    xPlan.description = "Our first billing plan for testing";
    xPlan.type = "INFINITE";

    PaymentDefinition xPDef = new PaymentDefinition();
    xPDef.name = "Payment Def One";
    xPDef.type = "REGULAR";
    xPDef.frequency_interval = "1";
    xPDef.frequency = "MONTH";
    xPDef.cycles = "0";

    MerchantPreferences xPrefs = new MerchantPreferences();
    xPrefs.cancel_url = "http://learnoogle.com";
    xPrefs.return_url = "http://learnoogle.com?success";


    Currency xPCUrr = new Currency();
    xPCUrr.currency = "USD";
    xPCUrr.value = "25.00";

    xPDef.amount = xPCUrr;

    List<PaymentDefinition> xDeffs = new List<PaymentDefinition>();
    xDeffs.Add(xPDef);

    xPlan.payment_definitions = xDeffs;
    xPlan.merchant_preferences = xPrefs;
        Plan cPLan = xPlan.Create(apiContext);

我尝试使用以下代码将计划设置为活动:

    Patch xPatch = new Patch();
    xPatch.op = "replace";
    xPatch.path = "state";
    xPatch.value = "ACTIVE";

    PatchRequest yPatch = new PatchRequest();
    yPatch.Add(xPatch);

    cPLan.Update(apiContext, yPatch);

然而,这给了我一个(400)错误请求。{“名称”:“BUSINESS_VALIDATION_ERROR”、“详细信息”:[{“字段”:“validation_error”、“问题”:“提供的路径无效。”}]、“消息”:“验证错误”、“information_link”:“https://developer.paypal.com/webapps/developer/docs/api/#BUSINESS_VALIDATION_ERROR”、“debug_id”:“01f0eb9aaaea0”}

谁能告诉我我在这方面做错了什么/

共有2个答案

戚侯林
2023-03-14

自提交已批准的答案以来,代码似乎已更改。它现在应该是这样的:

var client = new PayPalHttpClient(environment);
JsonPatch<Plan> xPatch = new JsonPatch<Plan>();
xPatch.op = "replace";
xPatch.path = "/";
xPatch.value = new Plan() { state = "ACTIVE" };

PlanUpdateRequest<Plan> yPatch = new PlanUpdateRequest<Plan>(planId);
yPatch.RequestBody(new List<JsonPatch<Plan>>() { patch });

BraintreeHttp.HttpResponse response = client.Execute(yPatch).Result; // or await this
万涵亮
2023-03-14

更新计划时,需要设置<code>补丁。将属性设置为包含要替换的字段的新<code>计划)。此外,您还需要设置<code>补丁。将属性的路径设置为仅“/”

在代码中,执行以下操作:

Patch xPatch = new Patch();
xPatch.op = "replace";
xPatch.path = "/";
xPatch.value = new Plan() { state = "ACTIVE" };

PatchRequest yPatch = new PatchRequest();
yPatch.Add(xPatch);

cPLan.Update(apiContext, yPatch);
 类似资料:
  • 看看连接到服务器的路由器以及服务器本身的防火墙规则。 确保Telco的服务器打开了1812和1813UDP端口。 那些人很可能连接到现在关闭的Wi-Fi塔。 根据FreeRADIUS,它们仍然是连接的,它限制了它们同时进行的会话。 使用radzap关闭他们的孤立会话。 可能是强制网络门户上的时区或时间不正确。 建议您使用网络时间协议(NTP)确保所有NAS设备和FreeRADIUS服务器之间的时间

  • 计费项目 \ Region cnbj0 (金山云-北京3) cnbj2 (金山云-北京6) awsbj0 (AWS-北京) awsusor0 (AWS-Oregon) awssgp0 (AWS-Singapore) awsde0 (AWS-Frankfurt) 存储 (每GB) 0.0364 RMB NA 0.524 USD 0.001 USD 0.001 USD 0.001 USD PUT/PO

  • SDS 的计费项包括以下几种 预设表读写配额 写入配额 AWS-北京 ¥0.058 每10单位的每小时的写入容量 AWS-Oregon $0.0064444 每10单位的每小时的写入容量 金山云-北京6 ¥0.01288 每10单位的每小时的写入容量 读取配额 AWS-北京 ¥0.0029 每10单位的每小时的读取容量 AWS-Oregon $0.00032222 每10单位的每小时的读取容量 金

  • 我想使用PayPal REST API在我的网站上提供订阅。根据该文件,为了与用户创建计费协议,需要计费计划。 虽然文档解释了如何创建计费计划/协议,但我仍然有一些问题文档没有回答: 计费计划是否用于多个计费协议?例如,您为网站上的每个服务创建一个计费计划,并让用户订阅 每个计费协议是否需要新的计费计划?(与上一个问题相反) 如果删除计费计划,是否也会删除所有相关的计费协议

  • 2.14 计费接口(边缘) 2.14.1 描述 返回5分钟颗粒度的带宽明细数据,主要返回时间戳、带宽值(bit) 2.14.2 请求地址 地址: https://api.bokecs.com/channel/bandwidth?time={time}domain={domain} 2.14.3 请求方式 GET 2.14.4 请求参数 参数名称 是否必须 参数描述 time 是 日期(yyyyMM

  • 当实例的试用期结束时,Navicat Monitor 需要令牌以继续监控该实例。令牌可以作为永久许可证或订阅购买。若要管理你的令牌并许可你的实例,请前往“配置”->“激活令牌密钥和许可实例”。 【注意】永久许可证和订阅方案不能在同一个 Navicat Monitor 上使用。在更改激活方法之前,你需要取消激活令牌密钥或退出你的 Navicat ID。 永久许可证 如果你购买了永久许可证,你将收到一