PayPal-node-SDK`订阅开始日期应该大于当前日期`始终在上午12点之后发生

时间:2018-01-03 17:22:31

标签: 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
 },

我知道这是沙盒环境的时区问题,但我无法弄清楚如何解决它。

我的结算协议是根据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,
    /..../
}

我已将节点中的TZ环境变量设置为utc;

我用于登录和订阅的沙盒帐户的时区设置:

enter image description here

我还尝试过不同的区域,例如Eastern Time,但它没有效果。

1 个答案:

答案 0 :(得分:2)

根据PayPal Docs,StartDate应该是UTC,看起来 设置处理时区

 process.env.TZ = 'utc';

对您的代码没有影响(有时可能会兑现),您能检查日期变量值是否为UTC?

我建议改变

var isoDate = new Date();

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

希望它有所帮助!