【问题标题】:Convert Stripe cURL code to Parse.Cloud.httpRequests将 Stripe cURL 代码转换为 Parse.Cloud.httpRequests
【发布时间】:2015-11-11 22:38:46
【问题描述】:

如何将以下代码转换为 Parse REST http 请求?

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);
            }
  });
});

我已经三次检查了所使用的 Stripe 键和 ID,但仍然无法正常工作。在url中放置-u cURL变量是否正确?

干杯, 埃里克

【问题讨论】:

    标签: rest curl parse-platform stripe-payments parse-cloud-code


    【解决方案1】:

    这是我将 cURL 请求转换为 httpRequest 的示例:

    cURL:

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

    http请求:

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

    这并不性感,可能有更好的方法使用标题/正文,但基本上我设置了 URL,然后?在所有参数之前,以及参数之间的与号 (&)。

    但是,您似乎只是在创建收费。你可以使用 Parse 的 Stripe 模块。

    此外,对于关联的帐户,您应该将该帐户设置为收费的目的地,或者很少发生一次性从您的条带帐户转移到他们的帐户,而不是使用收费。这是出于税收目的。

    【讨论】:

    • 谢谢杰克,是的,这是用于关联帐户的费用。我想要完成的是第一种方法,如下所述:link 我已成功向客户收费并将资金转移到目的地。但是付款仍然通过平台帐户处理,我希望连接的帐户能够管理所有这些。因此,我的示例 curl 代码中的 -H 变量。
    【解决方案2】:

    解决了。

    另一个问题是向 URL 添加参数会导致 404 错误。

    这个问题的解决方案 (Parse.com create stripe card token in cloud code (main.js)) 帮助解决了我的问题。

    基本上,您在 httpRequest 'headers' 中调用 -u 和 -H cURL 参数。确保将“Bearer”前缀添加到 {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);
                }
      });
    });
    

    【讨论】:

      猜你喜欢
      • 2018-03-21
      • 1970-01-01
      • 2018-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-28
      • 1970-01-01
      相关资源
      最近更新 更多