node.js - PayPal-node-SDK `Subscription start date should be greater than current date` 总是在凌晨 12 点之后发生

标签 node.js paypal paypal-sandbox paypal-rest-sdk paypal-subscriptions

我住在香港,我总是在午夜后从 paypal.billingAgreement.execute() 收到沙箱 paypal 交易错误。下午错误消失,可能是paypal服务器所在的地方终于过了午夜。

{    name: 'SUBSCRIPTION_UNMAPPED_ERROR',
     message: 'Subscription start date should be greater than current date',
     information_link: 'https://developer.paypal.com/docs/api/payments.billing-agreements#errors',
     debug_id: 'd2e618eef4162',
     httpStatusCode: 400
 },

我知道这是沙箱环境的时区问题,但我不知道如何解决。

我的结算协议(protocol)是根据 PayPal-node-SDK 中的示例创建的

process.env.TZ = 'utc';
var isoDate = new Date();
isoDate.setSeconds(isoDate.getSeconds() + 4);
isoDate.toISOString().slice(0, 19) + 'Z';

var billingAgreementAttributes = {
    "start_date": isoDate,
    /..../
}

我已将 Node 中的TZ 环境变量设置为utc

我用来登录订阅的沙盒账号的时区设置:

enter image description here

我也尝试过不同的时区,例如 Eastern Time,但没有效果。

最佳答案

根据 PayPal 文档,StartDate 应该是 UTC,看起来 设置进程时区

 process.env.TZ = 'utc';

在你的代码中没有影响(有时它可能会被兑现),你可以检查日期变量值是UTC吗?

我建议改变

var isoDate = new Date();

var isoDate = new Date().toISOString();

希望对您有所帮助!

关于node.js - PayPal-node-SDK `Subscription start date should be greater than current date` 总是在凌晨 12 点之后发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48082169/

相关文章:

javascript - 每次 var 更改后更新 res.locals 吗?

node.js - 支持写入多文档的yaml库

android - 当我输入十进制数 android studio 时出错

ActiveMerchant PaypalExpress 网关 - 设置谁支付费用

paypal - 使用 paypal 立即购买自定义变量

javascript - 实例 stub 方法

node.js - 是否可以将 NWJS 应用程序作为单个 exe 文件分发?

php - Paypal 订阅价格显示为零

paypal - 创建 Paypal 沙盒商家/卖家帐户

ios - INTERNAL_SERVICE_ERROR 使用自定义运输 iOS PayPal SDK