- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用Angular-Stripe-Checkout library创建像这样的 stripeToken
example 。一些亮点如下所示。
与许多 Angular-stripe 库和示例一样,它仅展示如何创建 stripeToken。
但是,我不清楚在检索到 stripeToken 后如何实际向用户收费?
在 Stripe 上,他们有 instructions关于如何使用 Node.js 向用户收费。但我不清楚如何设置它并使其与 Angular 兼容。
<小时/>代码要点
html
<button ng-click="product.doCheckout()">Buy</button>
js
// note: StripeCheckout is injected in the controller
product.doCheckout = function(token, args) {
// You should configure a handler when the view is loaded,
// just as you would if you were using checkout.js directly.
//
// Unlike a vanilla Stripe Checkout handler, this one can be
// reused as many times as you like.
var handler = StripeCheckout.configure({
name: "Custom Example",
token: function(token, args) {
console.log(token.id)
//$log.debug("Got stripe token: " + token.id);
}
});
var options = {
description: "Ten dollahs!",
amount: 10000
};
// The default handler API is enhanced by having open()
// return a promise. This promise can be used in lieu of or
// in addition to the token callback (or you can just ignore
// it if you like the default API).
//
// The rejection callback doesn't work in IE6-7.
handler.open(options)
.then(function(result) {
alert("Got Stripe token: " + result[0].id);
console.log(result);
var stripe = window.Stripe;
var stripeToken = result[0].id;
//
// what next?
},function() {
alert("Stripe Checkout closed without making a sale :(");
}
);
};
最佳答案
简短的回答是:不要这样做。
长答案:您收到的 strip token 是交易 ID。它是公开的,因为它本身不构成风险。将其视为您要处理费用的卡的查找键。
但是,要处理交易,您需要一个私有(private)/ secret 元素:您的 key 。为了在客户端处理它,您需要将此 secret 泄露给客户端,这意味着任何人都可以看到该值。
我认为这样做并不明智,尤其是考虑到所讨论的 key 是您要进行 strip 化的 API key 。
我还进行了简短的检查,他们的 API 不会广播 CORS header ,因此无论如何,您都只能使用某种后端来执行请求。
创建费用的后端请求实际上非常简单。实际上,HTTP 调用类似于:
curl https://api.stripe.com/v1/charges \
-u sk_test_BQokikJOvBiI2HlWgH4olfQ2: \
-d amount=400 \
-d currency=usd \
-d source=tok_16t4Xt2eZvKYlo2CLvBSsmXD \
-d description="Charge for test@example.com"
sk_test_BQokikJOvBiI2HlWgH4olfQ2
是 API key 源
是您收到的 strip token 如果您可以在任何服务器端环境中复制这样的调用,那么您就很出色。
(这直接来自他们的 API 文档 https://stripe.com/docs/api#create_charge )
关于javascript - 如何在 Angular 中进行实际的 Stripe 收费(stripeToken 已知)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32992249/
我是一名优秀的程序员,十分优秀!