我正在尝试在沙盒环境中使用PayPal API更新订阅计划。在成功地修改了订阅计划并收到了积极的响应后,我再次获取订阅详细信息。但是,检索到的订阅仍显示旧的计划ID,而不是更新的计划ID。我已经等待了一段时间,以允许在更新过程中的潜在延迟,但问题仍然存在。我已经彻底检查了我的代码,并确保修订请求和随后的获取请求得到正确实现。在沙盒环境中使用PayPal API更新订阅计划时,是否有任何已知的限制或需要考虑的额外步骤?
修改订阅计划:
const updateSubscriptionPlan = async () => {
try {
// Code to obtain PayPal token and define planId and apiUrl
const updatedSubscriptionResponse = await axios.post(
apiUrl,
{ plan_id: planId },
{ headers: headers }
);
// Console log the updatedSubscriptionResponse.data
} catch (error) {
// Handle errors
}
};
获取订阅详细信息:
const getSubscriptionDetails = async () => {
try {
// Code to obtain PayPal token and define apiUrl
const updatedSubscriptionResponse = await axios.get(
apiUrl,
{ headers: headers }
);
// Console log the updatedSubscriptionResponse.data
} catch (error) {
// Handle errors
}
};
注意:我已经验证了端点URL中使用的订阅ID是正确的,并且我正在使用沙箱环境。我还审查了修订请求的响应数据,并确认计划ID更新成功。尽管如此,当再次获取订阅详细信息时,更新的计划ID不会被反映出来。任何关于如何解决此问题的见解或建议将不胜感激。谢谢你。
1条答案
按热度按时间jjhzyzn01#
付款人尚未批准新计划,因此变更尚未生效。
请参阅订阅文档:
使用PayPal的订阅要求用户登录并使用响应中返回的批准HATEOS URL重新同意更改。如果未进行重新同意或重新同意失败,则订阅将继续按现有计划计费。
可以使用JS SDK paypal.Buttons
createSubscription
回调来代替此批准的重定向。让回调(可选地获取和)返回订阅ID。