订阅配置文件不受支持

时间:2013-03-01 17:58:22

标签: paypal-adaptive-payments paypal-subscriptions

PayPal订阅是根据PayPal网站标准创建的,订阅者ID以“I”开头。当我致电getrecurringpaymentsprofiledetails时,会显示以下错误subscription profiles not supported。让我知道在不使用IPN的情况下获取使用PayPal标准创建的订阅详细信息的任何其他方式。

2 个答案:

答案 0 :(得分:0)

不幸的是,如果没有依赖IPN,然后针对您自己的数据库运行查询,就不会有任何问题。这些API主要用于定期付款(通过CreateRecurringPayments API调用通过Express Checkout定期付款创建的付款),而不是您正在设置的网站付款标准订阅。对于订阅,重复发生的API可以做一些事情,但订阅并不支持所有功能。这将是其中之一。

答案 1 :(得分:0)

我通过这种方式得到它:

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()”起的两个月,第二个日期设置为“ now()”。如果没有任何交易,则状态可能不会处于活动状态,但请仔细检查:存在随机问题,可能是信用卡问题。在那种情况下,我假设status可以是==到delayed或其他东西,但是我无法对其进行测试,所以我不知道。这个想法来自这个question和相对第二个答案,值得我感激。

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