我正在尝试在条带连接管理帐户上创建订阅计划。我尝试了以下代码:
Parse.Cloud.define("createSubscription", function (request, response) {
Parse.Cloud.httpRequest({
method:"POST",
url: "https://" + "sk_test_****************" + ':@' + "api.stripe.com/v1" + "/accounts/" + 'acct_**********' + "/plans/",
headers: {
'Authorization': 'Basic ********************'
},
body: {
'amount': 2000,
'interval': 'month',
'name': 'JPGB Plan',
'currency': 'usd',
'id':'first Plan',
},
success: function(httpResponse) {
response.success(httpResponse.text);
},
error: function(httpResponse) {
response.error('Request failed with response code' + httpResponse.status);
}
});
});
但是这失败了404(请求的资源不存在)错误。
这就是我做到的。
Parse.Cloud.define("createAccountPlan", function (request, response) {
Parse.Cloud.httpRequest({
method:"POST",
url: "https://" + "sk_test_****************" + ':@' + "api.stripe.com/v1/plans",
headers: {
'Stripe-Account': request.params.accountId
},
body: {
'amount': request.params.amount,
'interval': 'day',
'interval_count':request.params.intervalCount,
'name': request.params.planName,
'currency': 'usd',
'id':request.params.planId,
},
success: function(httpResponse) {
response.success(httpResponse.text);
},
error: function(httpResponse) {
response.error('Request failed with response code' + httpResponse.status);
}
});
});
答案 0 :(得分:0)
我认为你应该做的不是执行直接的http请求来条带化REST API,而是使用strip node-js SDK来完成它并为你做更多事情。
要在解析服务器中实现它,您需要执行以下步骤:
npm install stripe
这会将条带安装到您的解析服务器项目
中
var stripe = require('stripe')(' your stripe API key ');
stripe.subscriptions.create({
customer: "{YOUR_CUSTOMER_ID}",
plan: "{PLAN_IDENTIFIER}"
}, function(err, subscription) {
// asynchronously called
}
);
然后,如果您需要对条带进行额外的服务调用,则可以以相同的方式执行此操作。
您可以使用条带运行的所有服务都可以在here
中找到当你可以使用SDK时总是更好,因为SDK会让你的 生活更容易,正在为你背后处理所有的事情 场景,通常由提供他们的公司维护(在 这种情况下它的条纹)
答案 1 :(得分:0)
首选的第一个身份验证选项是使用您(平台帐户)的秘密密钥并传递一个Stripe-Account标头,该标头标识正在为其发出请求的连接帐户。
(展示客户的演示)
Stripe的所有库均基于每个请求支持这种身份验证方式
这里的条带化文档有些微妙,但这意味着您可以使用相同的技术为关联帐户上的客户进行订购。您也可以使用它来为该关联帐户制作产品和计划。以及您代表关联客户要做的其他任何事情:
(async function(){
let subscription = await stripe.subscriptions.create({
customer: "someCustomerID",
plan: "planID"
},{
stripe_account: "connectedStripeAccountID"
});
})();