如何通过PayPal REST API在.NET应用中查询账户所有有效订阅?
查询PayPal账户有效订阅的REST API方案(.NET集成)
有的,PayPal官方提供了Subscriptions API来实现这一需求,具体可通过列表接口筛选出账户内的有效订阅。
核心API端点
使用GET /v1/billing/subscriptions接口,通过status参数过滤指定状态的订阅。针对“有效”场景,常用状态值包括:
ACTIVE:已激活的正常订阅(用户正在履约付款)APPROVED:用户已批准但尚未完成首次付款的订阅(若需包含这类待激活的有效订阅可添加此值)
.NET代码示例(基于官方SDK)
如果使用PayPal官方的.NET SDK(PayPalCheckoutSdk),可按以下方式实现:
using PayPalCheckoutSdk.Core; using PayPalCheckoutSdk.Subscriptions; using System.Threading.Tasks; // 初始化PayPal客户端(沙箱/生产环境二选一) var environment = new SandboxEnvironment("你的ClientID", "你的ClientSecret"); // 生产环境替换为:new LiveEnvironment("你的ClientID", "你的ClientSecret"); var client = new PayPalHttpClient(environment); // 构建订阅列表查询请求 var request = new SubscriptionsGetListRequest(); // 筛选ACTIVE状态的订阅,多个状态用逗号分隔,比如"ACTIVE,APPROVED" request.QueryParameters.Add("status", "ACTIVE"); // 可选:设置分页大小,默认10,最大20 request.QueryParameters.Add("page_size", "20"); // 可选:按创建时间范围过滤,比如只查近30天的订阅 // request.QueryParameters.Add("start_time", "2024-01-01T00:00:00Z"); // 执行请求并获取结果 var response = await client.Execute(request); var subscriptionCollection = response.Result<SubscriptionCollection>(); // 遍历订阅数据 foreach (var subscription in subscriptionCollection.Items) { // 处理单个订阅信息,比如ID、用户邮箱、金额等 var subId = subscription.Id; var payerEmail = subscription.Payer.EmailAddress; var planId = subscription.PlanId; }
关键注意事项
- 确保你的PayPal应用已开通Subscriptions API的访问权限(在PayPal开发者平台的应用设置中确认)
- 分页处理:如果账户内订阅数量超过
page_size,需要通过page参数循环请求,直到获取所有结果 - 状态筛选可根据业务需求灵活调整,比如排除
CANCELLED、EXPIRED等无效状态
内容的提问来源于stack exchange,提问作者Roshil K
相关产品推荐
相关产品推荐

