NodeJS 在沙盒环境中使用PayPal API修改后,订阅计划未更新

cedebl8k  于 2023-06-05  发布在  Node.js
关注(0)|答案(1)|浏览(304)

我正在尝试在沙盒环境中使用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不会被反映出来。任何关于如何解决此问题的见解或建议将不胜感激。谢谢你。

jjhzyzn0

jjhzyzn01#

付款人尚未批准新计划,因此变更尚未生效。
请参阅订阅文档:
使用PayPal的订阅要求用户登录并使用响应中返回的批准HATEOS URL重新同意更改。如果未进行重新同意或重新同意失败,则订阅将继续按现有计划计费。
可以使用JS SDK paypal.Buttons createSubscription回调来代替此批准的重定向。让回调(可选地获取和)返回订阅ID。

相关问题