【问题标题】:How to send Stripe customer ID to Parse如何将 Stripe 客户 ID 发送到 Parse
【发布时间】:2017-03-13 06:13:47
【问题描述】:

我已经使用这个函数通过 Parse 创建了 Stripe 客户:

Parse.Cloud.define("customer", function(request, response){
stripe.customers.create({
    email: request.params.useremail
}, function(err, customer) {
    if(err){
            console.log(err);
            response.error(err);
    } 
    else{
            console.log(customer);
            response.success(customer);
    });
});

但是,我希望能够将在当前用户数据下创建的客户 ID 作为“cusToken”发送到 Parse,就像“电子邮件”、“用户名”等存储在用户中一样类。

【问题讨论】:

  • 可以从请求中获取当前用户。将条带 id 设置为该用户的属性并保存。
  • 谢谢。我该如何解决这个问题?

标签: node.js parse-platform stripe-payments


【解决方案1】:

有两个假设可以简化此代码,第一个是进行调用的客户端始终代表其登录用户而不是其他用户进行调用。第二个是条纹create 回答了一个承诺。假设:

Parse.Cloud.define("customer", function(request, response) {
    var user = request.user;
    stripeCreateP({ email: user.email }).then(function(customer) {
        user.set("someUserProperty", customer.someStripeProperty);  // as an example
        return user.save();
    }).then(function(result) {
        console.log(customer);
        response.success(customer); 
    }, function(err) {
        console.log(err);
        response.error(err);
    });
});

如果 stripe api 没有返回 parse Promise,你可以按如下方式“promisify”它...

function stripeCreateP(params) {
    var p = new Parse.Promise();
    stripe.customers.create(params, function(err, customer) {
        if (err) {
            p.resolve(customer);
        } else {
            p.reject(err);
        }
    });
    return p;
}

...并使用电子邮件参数对象调用它...

stripeCreateP({ email: user.email }).then( ...

如果您的应用为客户端登录用户以外的用户调用此操作,那么您需要像在 OP 中一样在 request.params 中传递用户电子邮件,此外,您需要在保存当前用户以外的用户的代码,然后您可以在保存之前使用useMasterKey。请参阅文档。

【讨论】:

  • 非常感谢!使用 var user = request.user() 时出现错误:Property 'user' of object # is not a function
  • @J.M,我的错。这不是一个函数,它是一个属性request.user,没有括号。已编辑。
  • 哦,好吧。这解决了它,但是现在有一个新错误是 Cannot call method 'then' of undefined at stripe.customers.create({ email: user.email }).then(function(customer)
  • 这意味着,正如我们所担心的,stripe create 方法没有承诺返回版本(响应then)。所以你需要那个承诺的建议。
  • 好的。现在 then 函数起作用了。我做了then(customer),但出现未知错误。这是我应该做的吗?
猜你喜欢
  • 1970-01-01
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 2016-04-17
  • 1970-01-01
  • 2021-12-30
  • 2018-10-27
  • 1970-01-01
相关资源
最近更新 更多