通过Parse.com Cloud Code取消条带计划,查询问题

时间:2015-11-14 07:31:18

标签: javascript node.js parse-platform stripe-payments cloud-code

我一直试图通过Parse Cloud Code取消条带计划,但收效甚微。我遇到的问题是使用CC查询来获取用户条带ID,我已将其保存在名为Payments的Parse类中。在Payments类中,我还有一个指向用户类的指针,用户的Parse objectid。

我是Java Script,Parse和Cloud代码的新手。所以这可能有一个非常简单的解决方案。但是我花了几天时间阅读这篇文章并阅读我能找到的所有帖子,但都没有成功。

以下是我正在使用的代码:

Parse.Cloud.define("cancel", function(request, response) {
var user = request.user;
var payments = Parse.Object.extend("Payments");
var query = new Parse.Query(payments);
query.include("parent")
query.equalTo("parent", {
                "__type": "Pointer",
                "className": "_user",
                "objectId": user.id
                });
query.find({
    success: function(results) {
          for (var i = 0; i < results.length; i++) {
          var object = results[i];
          var customerStripeId = object.get("stripeID");
          var key = 'sk_test_ONbnGBHHcsmOMFtSifV3JD2S';
          var url = "https://api.stripe.com/v1/customers/" + customerStripeId + "/subscription";
            Parse.Cloud.httpRequest({
                method: 'DELETE',
                params: { at_period_end: true, key: key },
                url: url,
                success: function() {
                    response.success()
                },
                error: function(httpResponse) {
                    console.error('Delete failed with response code ' + httpResponse.status + "for" + user.id +" "+ customerStripeId);
                    response.failure()
                }}
            });
      },
    error: function(error) {
        alert("Error: " + error.code + " " + error.message);
      }
    });
});

我也尝试使用此代码获取查询但没有成功:

Parse.Cloud.define("cancel", function(request, response) {
var user = request.user;
var payments = Parse.Object.extend("Payments");
var query = new Parse.Query(payments);
query.include("parent")
query.equalTo("parent", {
                "__type": "Pointer",
                "className": "_user",
                "objectId": user.id
                });

var customerStripeId = query.get("stripeID");
var key = 'sk_test_ONbnGBHHcsmOMFtSifV3JD2S';
var url = "https://api.stripe.com/v1/customers/" + customerStripeId + "/subscription";


Parse.Cloud.httpRequest({
    method: 'DELETE',
    params: { at_period_end: true, key: key },
    url: url,
    success: function() {
        response.success()
    },
    error: function(httpResponse) {
        console.error('Delete failed with response code ' + httpResponse.status + "for" + user.id +" "+ customerStripeId);
        response.error()
    }
});

});

再次,我的问题是设置customerStripeId var。其余代码运行良好,我知道这是因为如果我在customerStripeId的代码中手动输入用户条带ID(并且一起跳过查询)。该功能有效。

我真的很感激这个问题的任何帮助。

提前致谢:)

1 个答案:

答案 0 :(得分:0)

对于其他任何有同样问题的人,我终于弄明白了。我相信问题出在指针上。我现在正在使用“query.equalTo(”parent“,user);”并且取消正在进行而没有任何问题。