【问题标题】:Applying a curl POST request with $http in angular以角度应用带有 $http 的 curl POST 请求
【发布时间】:2016-01-04 17:00:51
【问题描述】:

我从Stripe documentation 得知我可以通过以下 curl 请求向用户收费:

定义

POST https://api.stripe.com/v1/charges

请求

curl https://api.stripe.com/v1/charges \
   -u sk_test_PjPAEVD1LXfUuA6XylJPnQX4: \
   -d amount=400 \
   -d currency=eur \
   -d source=tok_16ffrPHW84OuTX9VFTYguruR \
   -d description="Charge for test@example.com"

在 Angular 设置中,我认为我必须使用 $http。但是,如何传递参数呢?

我尝试了以下

$http.post('https://api.stripe.com/v1/charges', result)
            .success(function(data, status, headers, config) {
              alert("success", data);
            })
            .error(function(data, status, headers, config) {
              alert("error", data);
            });

但收到错误:

XMLHttpRequest 无法加载 https://api.stripe.com/v1/charges。不 请求中存在“Access-Control-Allow-Origin”标头 资源。

【问题讨论】:

  • Stripe 有一个 JavaScript SDK ...使用它来发出初始令牌请求并将响应传递给您的服务器
  • 很抱歉,我对此一无所知。我已经设法检索到令牌请求,但我该如何处理实际费用?这就是为什么我试图这样做。查看相关问题:stackoverflow.com/questions/32992249/…
  • 一旦从条带接收到令牌,您必须将该令牌发送到您的服务器,以便您可以在那里创建费用,您可以使用您的 cURL 代码执行此操作。 Stripe 还拥有大多数语言的服务器端 SDK
  • 你有这一步的教程吗?我不知道该怎么办
  • 第 3 步:将表单发送到您的服务器彻底阅读文档

标签: javascript angularjs http curl stripe-payments


【解决方案1】:

您需要有一些代码运行服务器端(可能使用 PHP、Ruby、Node.JS、ASP.NET 等),这些代码获取您在浏览器/Javascript 中生成的令牌作为输入,发送给https://api.stripe.com/v1/charges进行收费。

不得从前端(浏览器)Javascript/Angular 进行调用。这样做,您将您的密钥公开 - 您的 Stripe 帐户将不再安全。前端代码中唯一应该包含的密钥是 公钥,它只能用于制作令牌。

查看here 获取有关生成令牌并将其发送到服务器的说明,查看here 获取有关创建收费服务器端的说明。

【讨论】:

  • 是的,我查看了它,但我仍然错过了使用 checkout.js 检索令牌然后将其传递给服务器的链接?另外,我在哪里设置服务器。
  • @JohnAndrews 您用于站点的服务器。从现在开始,您在哪里为您的应用提供服务?
  • 是的,我明白了,但是您有任何示例说明如何设置该服务器以接受此类服务器调用吗?
  • @JohnAndrews 你还没有回答 charlietfl 的问题。从现在开始,您在哪里为您的应用提供服务?
  • @charlietfl,看起来 c9.io 是一个基于云的 IDE。所以可能不是用于托管服务器端应用程序。 JohnAndrews,您需要一台服务器来运行您的代码。
猜你喜欢
  • 2013-08-03
  • 2015-05-13
  • 1970-01-01
  • 2016-06-11
  • 2018-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多