【发布时间】:2017-12-16 04:21:55
【问题描述】:
在创建连接快速帐户结束时,我无法向条带令牌端点发送“POST”请求。目前,我的应用程序(ios)正在打开 OAuth 链接(其中包含到我的服务器(Firebase 函数)的重定向 uri)到由条带制作的快速帐户创建网页。用户完成帐户设置后,我会在后端收到授权码,然后使用授权码和 client_secret_key 向“https://connect.stripe.com/oauth/token”发送 POST 请求。我正在使用 XMLHttpRequest npm 在 firebase 函数中发送 POST 请求并像这样设置我的参数
var params = "client_secret=" + CLIENT_SECRET + "&code=" + AUTHORIZATION_CODE + "&grant_type=authorization_code"
我的请求头是这样的
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
但我在发送 POST 请求后返回此错误
"error": {
"type": "invalid_request_error",
"code": "unsupported_content_type",
"message": "Invalid request: unsupported Content-Type text/plain;charset=UTF-8. If error persists and you need assistance, please contact support@stripe.com."
}
我认为我正确地将请求标头内容类型设置为“application/x-www-form-urlencoded”,但仍然返回错误,好像内容类型是“Text/plain”一样。
这是完整的后端代码
exports.CreateUsersPayoutAccount = functions.https.onRequest((req, res) =>{
const userID = req.query.state
const AUTHORIZATION_CODE = req.query.code
console.log(userID)
console.log(AUTHORIZATION_CODE)
//console.log(req);
var request = new XMLHttpRequest()
request.addEventListener('load', getStripeConnectUserID)
var params = "client_secret=" + CLIENT_SECRET + "&code=" + AUTHORIZATION_CODE + "&grant_type=authorization_code"
//var params = JSON.stringify({client_secret : CLIENT_SECRET, code : AUTHORIZATION_CODE, grant_type : "authorization_code"})
console.log(params);
request.open("POST", "https://connect.stripe.com/oauth/token", true)
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
//request.setRequestHeader("Content-length", params.length)
request.send(params)
})
如果有人能指出我正确的方向,我将不胜感激,因为我对编写后端 HTTP 调用有点陌生。
【问题讨论】:
标签: node.js firebase stripe-payments backend stripe-connect