【问题标题】:paypal - 'subscription profiles not supported'paypal - '不支持订阅配置文件'
【发布时间】:2010-12-27 12:40:39
【问题描述】:

我正在使用网站支付标准为订阅创建定期付款。

我需要知道下一个结算日期是什么时候,所以看起来我可以将 GetRecurringPaymentsProfileDetails nvp api 与定期付款资料 ID 一起使用。

但是,当我发送定期付款资料 ID 时,我收到了失败回复:

{'ack':'Failure',.... l_longmessage0: 'Subscription profiles not supported by Recurring Payment APIs.',
'l_shortmessage0': 'Subscription Profiles not supported.',....

这是否意味着无法通过 GetRecurringPaymentsProfilesDetails NVP api 检索订阅按钮的定期付款配置文件?

如果是这样,是否有其他 api 来获取订阅配置文件的详细信息?

【问题讨论】:

    标签: paypal paypal-subscriptions


    【解决方案1】:

    我是这样解决的:

    let options = {
     method: 'post', headers: {'content-type':'application/json','Access-Control-Allow-Credentials':true},
     auth:{'username':process.env.PAYPALID,'password':process.env.PAYPALPASSWORD},
     url: 'https://api.paypal.com/v1/oauth2/token',
     data: 'grant_type=client_credentials',
    }
    axios(options).then((response)=>{let paypaltoken=response.data.access_token
    axios.get('https://api.paypal.com/v1/payments/billing-agreements/'+agreementid+'/transactions?start_date=2018-01-01&end_date=2019-07-07', { headers: { 'Authorization':'Bearer '+paypaltoken, 'Content-Type':'application/json', } })
    .then((transaction)=>{console.log(transaction.data)})
    .catch(err => {console.error(err);console.log('err: '+JSON.stringify(err)); res.send (err) })
    })
    .catch(err => {console.error(err);console.log('err: '+JSON.stringify(err)); res.send (err) })
    

    那么如果你只得到transaction.data,你会得到一系列的事务对象,它们的status是==Completed只有当事务正常时,也就是没有被取消,所以就检查最后一个以用于计划控制目的。 当status == Canceled 时,您知道该协议不再有效。

    如果您收到每月付款,另一种方法是将第一个日期设置为从“now()”开始的 2 个月,将第二个日期设置为“now()”。如果您没有交易,则状态可能不活跃,但请仔细检查:随机可能存在信用卡问题。在那种情况下,我想 status 可能是 == 到 delayed 或其他东西,但我无法测试它,所以我不知道。这个想法来自这个question 和相对的第二个答案,值得我感谢以及 Cyril ALFARO。

    请注意,根据您的情况,您可能需要在标头中添加 'Access-Control-Allow-Credentials':true,而不是在请求中添加其他 withCredentials: true 或类似名称。

    【讨论】:

      【解决方案2】:

      您可以使用/v1/payments/billing-agreements/{billingid}/transactions?start_date=YYY-MM-DD$end_date=YYY-MM-DD 劫持 API...然后您只需检查最后一笔交易是否适合您的时间段。

      【讨论】:

      • 他在做某事..如果您请求交易清单,您可以获得一些信息,但如果您请求计划详细信息,您将无法获得任何信息。
      • @KnF 是的,完全正确
      【解决方案3】:

      GetRecurringPaymentsProfileDetails 不支持通过支付标准创建的订阅配置文件,它仅支持通过 nvp api 创建的定期支付配置文件。

      在撰写本文时,还没有获取订阅详细信息的 api。如果您想知道当前状态,您必须使用 IPN 侦听器自己捕获和跟踪所有状态变化。

      【讨论】:

      • 你知道现在情况是否仍然如此,因为你的回答已经过去了 2 年?
      • 说真的,即使我想使用 API 取消订阅.. 有什么办法吗?
      • @没有ipn 6年后有什么解决办法
      • @dar,你能解释一下你的最后一句话吗?如果我有 subscr_signup ipn 消息,里面有什么东西可以让我在未来检查订阅状态吗?
      • @TTT 据我所知,没有。 IPN 被推送到您的端点,您无法查看状态。您必须收听此处列出的事件:paypal.com/us/cgi-bin/webscr?cmd=p/acc/… 并采取相应措施。您可以在网站上查找状态,但这很耗时且需要手动操作。最近没跟上api。
      猜你喜欢
      • 2013-02-16
      • 2015-05-18
      • 2017-07-04
      • 2015-11-23
      • 2011-01-11
      • 2011-06-22
      • 1970-01-01
      • 1970-01-01
      • 2012-05-23
      相关资源
      最近更新 更多