2015-11-06 95 views
0

如何將以下代碼轉換爲Parse REST http請求?將條紋cURL代碼轉換爲Parse.Cloud.httpRequests

curl https://api.stripe.com/v1/charges \ 
-u {PLATFORM_SECRET_KEY}: \ 
-H "Stripe-Account: {CONNECTED_STRIPE_ACCOUNT_ID}" \ 
-d amount=1000 \ 
-d currency=aud \ 
-d source={TOKEN} 

我已經嘗試以下,但我接收401授權錯誤:

Parse.Cloud.define("payMerchantDirect", function(request, response){ 
Parse.Cloud.httpRequest({ 
    method: "POST", 
    url: "https://" + {PLATFORM_SECRET_KEY} + ':@' + "api.stripe.com/v1" + "/charges/", 
    headers: { 
     "Stripe-Account": request.params.{CONNECTED_STRIPE_ACCOUNT_ID} 
    }, 
    body: { 
     'amount': 1000, 
     'currency': "aud", 
     'source': request.params.{TOKEN} 
    }, 
    success: function(httpResponse) { 
      response.success(httpResponse.text); 
      }, 
    error: function(httpResponse) { 
      response.error('Request failed with response code ' +  httpResponse.status); 
      } 
    }); 
}); 

我三重檢查使用的帶區按鍵和標識,但可惜仍然沒有工作。將-u cURL變量放在url中是否正確?

乾杯, 埃裏克

回答

0

解決了它。

另一個問題是,通過向URL添加參數導致404錯誤。

此問題的解決方案(Parse.com create stripe card token in cloud code (main.js))對我的問題有所幫助。

基本上你可以在httpRequest'headers'中調用-u和-H cURL參數。確保您將「承載者」前綴添加到{PLATFORM_SECRET_KEY}。

Parse.Cloud.define("payMerchantDirect", function(request, response){ 
Parse.Cloud.httpRequest({ 
    method: "POST", 
    url: "https://api.stripe.com/v1/charges", 
    headers : { 
    'Authorization' : 'Bearer {PLATFORM_SECRET_KEY}', 
    'Stripe-Account' : request.params.{CONNECTED_STRIPE_ACCOUNT_ID} 
    }, 
    body: { 
     'amount': request.params.amount, 
     'currency': "aud", 
     'source': request.params.sharedCustomerToken 
    }, 
    success: function(httpResponse) { 
      response.success(httpResponse.data.id); 
      }, 
      error: function(httpResponse) { 
      response.error('Request failed with response code ' + httpResponse.status); 
      } 
    }); 
}); 
0

這裏就是我翻了一個捲曲的請求到HttpRequest的一個例子:

捲曲:

curl https://api.stripe.com/v1/transfers \ 
    -u [secret api key]: \ 
    -d amount=400 \ 
    -d destination=[account id]\ 
    -d currency=usd 

的HttpRequest:

Parse.Cloud.httpRequest 
(
    { 
     method:"POST", 
     url: "https://" + STRIPE_SECRET_KEY + ':@' + STRIPE_API_BASE_URL + "/transfers?currency=usd&amount=" + amountOwedProvider.toString() + "&destination=" + recipient_id 
    } 
) 

這不是性感可能有更好的方法使用標題/正文,但basica我建立了URL,然後呢?在所有參數之前,以及參數之間的&符號(&)。

但是,它看起來像你剛剛創建收費。你可以使用Parse的Stripe模塊。

此外,通過連接的帳戶,您應該將帳戶設置爲收費目的地,或者只有極少數情況下一次性從您的條形帳戶轉移到他們的帳戶,而不是使用費用。這是爲了稅務目的。

+0

謝謝傑克, 是的這是用於關聯帳戶的費用。我想要完成的是第一種方法,如下所述:[鏈接](https://stripe.com/docs/connect/payments-fees#charging-directly) 我已設法向客戶收費並轉讓資金到達目的地。然而,付款仍然通過平臺帳戶處理,我希望關聯帳戶管理所有這些。 因此,我的示例curl代碼中的-H變量。 –