我正在使用角条-校验库创建一个类似于这个示例的stripeToken
。一些亮点如下所示。
与许多角条库和示例一样,它只说明了如何创建stripeToken。
但是,在我看来还不清楚如何在检索到stripeToken之后实际向用户收费呢?
在Stripe上,他们有关于如何向用户收取使用说明费用的node.js。但我不清楚如何设置它,并使它与角度兼容。
代码的重点
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 :(");
}
);
};
发布于 2015-10-07 04:33:25
简单的回答是:不要这样做。
长话短说:您收到的这个条形令牌是一个事务ID,它是公开的,因为它本身不构成任何风险。把它看作是你想要处理电荷的卡片的查找钥匙。
但是,要处理事务,您需要一个私有/秘密元素:您的秘密密钥。为了处理它,客户端需要将这个秘密泄露给客户端,这意味着这个值对任何人都是可见的。
我不认为这样做是明智的,特别是因为有问题的秘密密钥是您的API键的条纹。
我还做了一个简短的检查,他们的API不广播CORS头,所以无论如何,您都要使用某种后端来执行请求。
创建电荷的后端请求实际上非常简单。实际上,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键。source
是您已经收到的条带标记如果您可以在任何服务器端环境中复制这样的调用,那么您就是黄金了。
(这直接来自他们在装药的API文档)
https://stackoverflow.com/questions/32992249
复制