在parse.cloud.httprequest中获取正确的格式时遇到问题,无法在周期结束时删除订阅。
我可以使用x-www-form-urlencoded,key'at_period_end'值true成功地向邮递员发出此请求。(由于我的名声,无法发布截图抱歉)
这是我的云代码:
Parse.Cloud.httpRequest({
method : 'DELETE',
url : 'https://' + skey + ':@' + 'api.stripe.com/v1' + '/customers/' + request.params.customerId + '/subscriptions/' + request.params.subscriptionId,
body : {
"at_period_end": true
},
success: function(httpResponse) {
if (httpResponse.status === 200) {
response.success(httpResponse);
}
else {
response.error(httpResponse);
}
},
error: function(httpResponse) {
response.error(httpResponse);
}
});
我试着添加了一个内容类型为set的headers对象,但没有成功。
我认为这只是一个格式转换问题,从我正确输入的postman到我的httprequest对象中的内容……
我也找不到关于httprequest方法的文档的任何重要信息,因此它非常令人沮丧:(。
多谢了一大堆
*****编辑解决方案:
已使用URL内联参数成功解决此问题:
var options = request.params.options,
url = 'https://' + skey + ':@api.stripe.com/v1/customers/' + request.params.customerId + '/subscriptions/' + request.params.subscriptionId,
keys;
keys = Object.keys(options);
// This is disgusting, I need to know a better way.
for (var i = 0; i < keys.length; i++)
{
if (i === 0)
{
url += '?';
}
url += keys[i] + '=' + options[keys[i]];
if (i !== keys.length - 1)
{
url += '&';
}
}
Parse.Cloud.httpRequest({
method : 'DELETE',
url : url,
success: function(httpResponse) {
if (httpResponse.status === 200) {
response.success(httpResponse);
}
else {
response.error(httpResponse);
}
},
error: function(httpResponse) {
response.error(httpResponse);
}
});
如果有人能告诉我更好的写作方法,那将是史诗般的:)
干杯
最佳答案
这个对我来说总是特别棘手,以下是我一直在使用的有效方法:
Parse.Cloud.httpRequest({
method: 'DELETE',
url: 'https://api.stripe.com/v1/customers/' + request.params.stripeId + '/subscriptions/' + request.params.stripeSubscriptionId,
headers: {
'Authorization': 'Basic BASE_64_ENCODE_SECRET_KEY'
},
params: {
at_period_end: true
},
success: function(httpResponse) {
...
},
error: function(httpResponse) {
...
}
});
这里有一些额外的细节。
我最初将“content type:application/json”作为标题之一,但这似乎不正确,尽管(我认为)过去需要它。
密钥的base64编码可以用
echo-e'sk_live_abcdef123456:'openssl base64
别忘了键末尾的冒号(:),这很重要。
不过,这只是一个细节,看起来将密钥直接放在url中也很有效。
关于http - 在at_period_end param解析云httpRequest strip 订阅,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29910651/