我看到Parse.com有Stripe付款模块,但我不确定他们是否支持Stripe.com管理帐户,因为我正在为市场创建移动应用程序,Stripe支持告诉我应该使用管理帐户进行市场支持
Parse.com Stripe模块:https://parse.com/docs/js/guide#cloud-code-modules-stripe
Stripe.com管理帐户:https://stripe.com/docs/connect/managed-accounts
有Parse.com Stripe模块经验的人吗?
答案 0 :(得分:3)
2012-07-09
版本构建的,这是在Connect和Managed Accounts输入Stripe API之前的几年。因此,Parse API库不支持托管帐户。
答案 1 :(得分:1)
您需要确保已将您的Stripe帐户设置为允许已连接的帐户。通过添加var Buffer = require('buffer')。Buffer;如果您在请求范围之外对云代码进行条带化,则可以使用以下代码创建帐户:
var Buffer = require('buffer').Buffer;
var bankAccountNumber = request.params['bankAccountNumber']
Parse.Cloud.httpRequest({
method:"POST",
url: "https://" +"api.stripe.com/v1" + "/accounts",
headers: {
'Authorization': 'Basic ' + new Buffer('YOUR_STRIPE_SECRET_KEY' + ':' + '').toString('base64')
},
body:{
"managed": false,
"country": "US",
"email": "example@mailinator.com"
},
success: function(httpResponse) {
response.success(httpResponse.text);
},
error: function(httpResponse) {
response.error('Request failed with response code: ' + httpResponse.status);
}
如果您创建一个独立帐户,您将在创建时收到一封电子邮件。 Mailinator是一项服务,允许您创建任何名称的工作电子邮件地址,但没有隐私。 编辑:我正在使用关联帐户。我注意到,在测试时,如果您成功创建了一个帐户,后续尝试使用同一封电子邮件创建帐户将失败。要转移资金,Stripe需要您可以在平台信息中心的已连接帐户下查看的某些属性。我找到了其中几个的语法(除银行帐户外)。 编辑2:要完成条纹的必填字段以验证您的帐户,您需要包含银行帐户字段。我的项目在Swift中运行,传递到我的云代码的参数是在我的应用程序中使用STPAPIClient.sharedClient()创建的令牌.createTokenWithBankAccount和在https://stripe.com/docs/testing#how-do-i-test-sending-transfers给出的测试帐户信息。
body:{
"managed": true,
"country": "US",
"email": "yourUniqueemail@mailinator.com",
"legal_entity[first_name]": "AnyName",
"legal_entity[last_name]": "AnyName",
"legal_entity[dob[day]]": "20",
"legal_entity[dob[month]]": "11",
"legal_entity[dob[year]]": "1993",
"legal_entity[type]": "individual",
"tos_acceptance[date]": "1438198036",
"tos_acceptance[ip]": "123.34.56.789",
"bank_account": bankAccountNumber,
},
编辑3: 我的代码的工作方式是创建客户并收取费用。收费金额将以申请费的形式发送至平台。然后连接的帐户从平台支付。(我不完全确定这是使用Stripe的正确方法;但是,这种方法似乎在测试模式下工作,并允许我们存储有关客户和我们付出的人的信息。)幸运的是,Parse的api中存在计费方法,因此我们不必发出POST请求。以下是执行此功能的收费方法。
Parse.Cloud.define("chargeAccount", function(request, response) {
var amount2 = request.params['amount']*100;
Stripe.Charges.create({
amount: amount2,
currency: request.params["currency"],
customer: request.params['customerId'],
description: request.params['description'],
application_fee: amount2/5,
destination: request.params['destinationAccountId']
},{
success: function(charge) {
response.success("There was a charge of $" + amount2/100 + " The application fee is: $" +amount2/500 +".");
},
error: function(error) {
response.error("\nThis is the error:\n" +error);
}
})
});
答案 2 :(得分:0)
我在解析问题部分找到了this个问题。我相信您应该能够更改此代码以满足您的需求。我还没有对它进行过测试,但是通过查看the stripe api,我想出了这个:
这是curl请求的样子:
curl https://api.stripe.com/v1/accounts \
-u sk_test_BQokikJOvBiI2HlWgH4olfQ2: \
-d managed=false \
-d country=US \
-d email="bob@example.com"
所以你的javascript会是这样的,我相信:
Parse.Cloud.httpRequest({
//STRIPE_SECRET_KEY will be your stripe secret key obviously, this is different from the public key that you will use in your iOS/Android side.
// STRIPE_API_BASE_URL = 'api.stripe.com/v1'
method:"POST",
url: "https://" + STRIPE_API_BASE_URL + "/accounts/",
headers: {
"keys[secret]" : STRIPE_SECRET_KEY
},
body:{
"managed="+true,
"country="+"US",
"email="+"bob@example.com"
},
success: function(httpResponse) {
response.success(httpResponse.text);
},
error: function(httpResponse) {
response.error('Request failed with response code ' + httpResponse.status);
}
});
这可能不是100%,因为我还没有能够测试它,但请查看以下问题以获取更多资源:
https://www.parse.com/questions/stripe-store-multiple-cards-on-a-customer