我一直试图通过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(并且一起跳过查询)。该功能有效。
我真的很感激这个问题的任何帮助。
提前致谢:)
答案 0 :(得分:0)
对于其他任何有同样问题的人,我终于弄明白了。我相信问题出在指针上。我现在正在使用“query.equalTo(”parent“,user);”并且取消正在进行而没有任何问题。