首页 > 解决方案 > 无法在 .net 核心中创建/激活贝宝计划

问题描述

在pluralsight课程play-by-play-get-paid-dot-net-core-modern-payment-gateways中,我正在尝试复制贝宝订阅,但由于创建/活动计划失败而无法获得贝宝计划ID。使用 nuget 包 paypal 2.0.0-beta00。我还更新了客户端 ID 和密码。

SerializationException:期望来自命名空间''的元素'root'。遇到名称为'',命名空间''的'None'。

    private async Task SeedBillingPlans()
    {
        var client = _clientFactory.GetClient();

        foreach (var plan in BillingPlanSeed.PayPalPlans(
            Url.Action("Return", "Subscription", null, Request.GetUri().Scheme),
            Url.Action("Cancel", "Subscription", null, Request.GetUri().Scheme)))
        {
            // Create Plan
            var request = new PlanCreateRequest().RequestBody(plan);
            var result = await client.Execute(request);
            var obj = result.Result<Plan>();

            // Activate Plan
            var activateRequest = new PlanUpdateRequest<Plan>(obj.Id)
                .RequestBody(GetActivatePlanBody());
            await client.Execute(activateRequest);

            // Add to database record
            var dbPlan = _dbContext.BillingPlans.FirstOrDefault(x =>
                x.Name == obj.Name);

            if (dbPlan != null && string.IsNullOrEmpty(dbPlan.PayPalPlanId))
            {
                dbPlan.PayPalPlanId = obj.Id;
                await _dbContext.SaveChangesAsync();
            }
        }
    }

项目来源:github.com/bjcull/BeerPal

标签: .net-corepaypalpaypal-sandbox

解决方案


推荐阅读