2017-07-11 10 views
0

接続エクスプレスアカウントの作成の最後にストライプトークンエンドポイントに「POST」リクエストを送信することができません。現在、私のアプリケーション(ios)は、ストライプで作成されたエクスプレスアカウント作成WebページにOAuth Link(サーバーへのリダイレクトURI(Firebase機能)を含む)を開きます。ユーザーが自分のアカウント設定を完了すると、私はバックエンドに認証コードを受け取り、認証コードとclient_secret_keyを使ってPOST要求を "https://connect.stripe.com/oauth/token"に送信します。私はまだ私が送信した後に戻って、このエラーを取得するfirebase関数内POSTリクエストを送信するためのXMLHttpRequest NPMを使用して、このアカウントIDのエンドポイントへのPOST時に 'unsupported_content_type'を取得する

request.setRequestHeader("Content-type", "application/x-www-form-urlencoded") 

のようなこの

var params = "client_secret=" + CLIENT_SECRET + "&code=" + AUTHORIZATION_CODE + "&grant_type=authorization_code"

と私の要求ヘッダーのように私のパラメータを設定しています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 [email protected]" }

「application/x-www-form-urlencoded」にリクエストヘッダーのコンテンツタイプを正しく設定していると思っていましたが、 content-typeが "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呼び出しを書くに幾分新しいです。

答えて

0
  1. バックエンドのクラウド機能では、そこからのPOST要求を送信するのではなく、認証コードをfirebaseデータベースのある場所に書き込みます。
  2. Xcodeに戻ると、データベーススポットに変更がある場合に実行されるリスナー機能があります。この関数は変更(認証コード)を読み、Alamofireで簡単なPOSTリクエストを送信するだけです。あなたは(そのHTTPトリガー以来の)特定のクラウド機能へのURIの直接作られた理由を私は理解しますが、ストライプがバック特定のアプリページにユーザーをリダイレクトすることができるようにURIを送信する点がない

、あなたはまだあなたのケースでは、アプリに指示されますか?

関連する問題