1

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

4

2 回答 2

0

不幸的是,不依赖 IPN 然后对您自己的数据库运行查询是不可能的。这些 API 主要用于定期付款(通过CreateRecurringPaymentsAPI 调用通过 Express Checkout Recurring Payments 创建的那些),而不是您设置的网站付款标准订阅。您可以针对订阅使用循环 API 执行一些操作,但订阅并不支持所有功能。这将是其中之一。

于 2013-03-01T18:04:26.847 回答
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()”开始的 2 个月,将第二个日期设置为“now()”。如果您没有交易,则状态可能不活跃,但请仔细检查:随机可能存在信用卡问题。在那种情况下,我想status可能是 == todelayed或其他东西,但我无法测试它,所以我不知道。这个想法来自这个问题和值得我感谢的相对第二个答案。

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

于 2019-07-07T18:49:52.303 回答