Stripe のマネージド アカウントをクラウド コード関数に実装しようとしています。これまでのところうまくいくようになりましたが、解決できないように見える問題に遭遇しました。
結論: 'content_type': 'application/x-www-form-urlencoded'
JSON を送信するにはどうすればよいですか?
application/JSON
Stripe は URL コード化されたフォームを想定しているため、content_type を に変更することはできません。JSON を文字列化しようとしましたが、これを行うと Stripe も文句を言います。「ハッシュ」が必要です。これは JSON であると想定しています。
content_type を form-urlencoded に設定したまま送信できるように、JSON を URL エンコードすることはできますか?
Parse が次のように言っているため、現在のコードは機能しません。
キャッチされないエラー: オブジェクトをフォーム エンコードできません
var secret_key = stripeKeys.stripeSecretKey;
var cardTokenId = "tok_...";
var country = "BE";
var currency = "EUR";
var email = "test@test.org";
var firstName = "test";
var lastName = "tester";
var dobDay = 1;
var dobMonth = 1;
var dobYear = 1950;
var addressCity = "City";
var addressCountry = "Country";
var addressLine = "Address line";
var addressZIP = "ZIP";
var addressProvince = "Province";
var createAccountPromise = function()
{
var params =
{
url: "https://api.stripe.com/v1/accounts",
method: "POST",
headers:
{
"Authorization": "Basic " + new Buffer(secret_key + ":").toString("base64"),
"content_type": "application/x-www-form-urlencoded"
},
body:
{
"country": country,
"default_currency": currency,
"email": email,
"managed": true,
"legal_entity":
{
"first_name": firstName,
"last_name": lastName,
"type": "individual",
"dob":
{
"day": dobDay,
"month": dobMonth,
"year": dobYear
},
"personal_address":
{
"city": addressCity,
"country": addressCountry,
"line1": addressLine,
"postal_code": addressZIP,
"state": addressProvince
}
},
"external_account": cardTokenId
}
};
return Parse.Cloud.httpRequest(params);
}
createAccountPromise()
.then(function(result)
{
console.log("SUCCESS: " + result.text);
response.success("Account Created");
},
function(errorReason)
{
console.log("ERROR: " + errorReason.text);
response.error("Account NOT Created because: " + errorReason.text);
});