无法在任何地方找到有关此特定错误的任何信息,请耐心等待.
我的Angular/NodeJS应用程序有一个通过Stripe处理的支付页面(用于月度和年度订阅).
我在Stripe仪表板中创建了订阅类型(两个订阅:StarterAnnual和StarterMonthly),我设置了这样的处理程序:
var handler = StripeCheckout.configure({
key: 'pk_test_qs8Ot1USopAZAyLN3gNXma0T',
image: '/img/stripe-logo.png',
locale: 'auto',
email: $scope.user.email,
token: function(token) {
console.log(token)
var tempObj = {
stripeToken : token,
email : $scope.user.email,
cost : $scope.plan.price * 100
plan : $scope.plan.name
}
$http.post('/api/makePayment', tempObj).then(function(data){
console.log('stripe data', data);
},function(err){
console.log('stripe error', err);
})
}
});
handler.open({
name: '<bizname>',
description: $scope.plan.name,
amount: $scope.plan.price * 100
});
Run Code Online (Sandbox Code Playgroud)
在我的Node路线中,我这样做:
exports.makePayment = function(req,res){
var stripeToken = req.body.stripeToken,
email = req.body.email,
cost = req.body.cost,
plan = …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用此处给出的说明集成 Stripe Checkout https://stripe.com/docs/ payments/ accept-a- payment?integration=checkout 节点。
我已按照他们的说明进行了操作,并使用我帐户中的实际(测试)密钥更新了示例中的 API 密钥。
我在前端使用React,在后端使用express。我已经启用了cors。
React 向后端的请求成功,并向条带发起预检请求。来自 stripe 的预检响应是 403,实际请求因 CORS 错误而被阻止 -PreflightMissingAllowOriginHeader
const express = require("express");
const app = express();
const cors = require("cors");
const stripe = require("stripe")(
process.env.STRIPE_SECRET_KEY
);
app.use(
cors({
origin: ["http://localhost:8000", "https://checkout.stripe.com"],
})
);
app.post("/create-checkout-session", async (req, res) => {
console.log('getting here 1')
const session = await stripe.checkout.sessions.create({
payment_method_types: ["card"],
line_items: [
{
price_data: {
currency: "usd",
product_data: {
name: "T-shirt",
},
unit_amount: 2000,
},
quantity: 1, …Run Code Online (Sandbox Code Playgroud) 条纹支付是否可行,
首先,我们将使用条带验证信用卡,然后我们生成令牌并创建客户.我们将在数据库中保存令牌而不是信用卡信息,之后我们将根据令牌或客户而非信用卡信息向客户付款.
在javscript文件,我们如何处理stripeResponseHandler和function stripeResponseHandler(status, response)?
因为我们已经使用了生成令牌
Stripe.createToken({
number: cardNumber,
cvc: cardCVC,
exp_month: $('#expiration-month').val(),
exp_year: $('#expiration-year').val()
}, stripeResponseHandler);
Run Code Online (Sandbox Code Playgroud)
在付款步骤中我们如何调用stripeResponseHandler?
请理解要求
1- 通过验证信用卡信息保存令牌,在这种情况下不涉及任何付款.金额/价格将为零(0).
2- 在数据库中保存此令牌,但此令牌使用次数不多.如果稍后使用此令牌,则无法使用.
3-创建客户将在stripe.com创建客户,我们也可以保存在我们的数据库中,但原因是我们不会从我们的网站充值,我们必须登录stripe.com并从该网站充值.当我们从该网站充值时,我们无法在我们的数据库中保存该记录.在创建客户时,我们必须为后者创建充值.如果我们使用这个客户,我们还需要再次使用信用卡.所以这是主要问题.
4-我们可以自己创建stripeResponseHandler函数 ,因为通过stripeResponseHandler验证卡可以在stripe服务器的stripe.js上完成.
我正在建立一个简单的网站,用Stripe处理付款.我正在使用Bootstrap来造型.当我使用Stripe Elements插入付款字段时,它们没有使用Bootstrap进行样式设置.如何将Bootstrap的样式应用于Elements支付字段?
我需要为预先存在的客户添加卡.这是我做的:
card_token = request.POST('stripeToken')
Run Code Online (Sandbox Code Playgroud)
customer = stripe.Customer.retrieve('cus_xxxxxxxxxx')
Run Code Online (Sandbox Code Playgroud)
customer.Cards.create(card=card_token)
Run Code Online (Sandbox Code Playgroud)
这是#3那我有麻烦,因为它看起来像客户没有办法卡的,但我见过其他地方的人做到了.
我该怎么做到这一点?
使用Stripe元素时,有没有办法不使用该card元素,但仍然会在某处显示自动品牌图标(最好是在cardNumber输入字段中)?
Stripe SDK 导致构建失败。具体错误是:
不兼容的块指针类型发送 '__strong STPAPIResponseBlock _Nonnull'(又名 'void (^__strong)(ResponseType _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong)')
到类型'void (^ _Nonnull)(STPSource * _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong)'的参数
它失败的代码是 STPAPIClient.m 中的以下代码...
- (NSURLSessionDataTask *)retrieveSourceWithId:(NSString *)identifier clientSecret:(NSString *)secret responseCompletion:(STPAPIResponseBlock)completion {
NSString *endpoint = [NSString stringWithFormat:@"%@/%@", APIEndpointSources, identifier];
NSDictionary *parameters = @{@"client_secret": secret};
return [STPAPIRequest<STPSource *> getWithAPIClient:self
endpoint:endpoint
parameters:parameters
deserializer:[STPSource new]
completion:completion];
}
Run Code Online (Sandbox Code Playgroud)
一切正常 - 然后我相信 Xcode 更新了。现在我遇到了这个问题。我尝试从头开始构建一个新的应用程序,除了 Stripe SDK(通过 CocoaPods 安装)之外什么都没有,但失败了。
在我回滚到早期版本的 Xcode 之前 - 任何帮助将不胜感激。
在Stripe仪表板中,我可以查看收据(单击发票详细信息中的预览链接).然后收据显示在弹出窗口内,但其中有固定链接,因此可以将其视为单独的页面.电子邮件收据的URL如下所示:
https://dashboard.stripe.com/emails/receipts/invrc_xxxxxxxxxxxx
此URL不需要身份验证,因此非常适合允许我在应用程序的结算页面中显示收据详细信息的链接.除了似乎没有办法从API获取神奇的invrc_xxxxxxxxxxxx id,所以我无法构造URL.
或者由于一些奇怪的原因,Stripe工程师遇到了设计未经身份验证的收据视图页面的麻烦,但决定不通过API公开它.为什么??
这个问题已在Stripe API - 收据清单 (见底部的评论部分)中提出,但未提供任何解释,解决方案或理由.希望这个更具体的问题能有所帮助.
更新:截至2019年1月17日,现在可以做到这一点.Charge对象具有允许您访问此信息的receipt_url 属性,无论是否已发送电子邮件收据!
我似乎无法找到预先填充条带付款弹出窗口中的电子邮件地址的方法.然而,本周末我在使用条带支付的网站上注册了两个帐户,我意识到这些网站已经在条带对话框iframe框中预先填充了我的电子邮件.所以我知道必须有办法,但我不确定如何做到这一点.文档没有定义该属性.有人可以解释如何使用JavaScript API和基本Stripe对话框完成此操作吗?
是否可以修改"Pay with Card"条纹按钮的样式?我试过修改,
stripe-button在外部样式表中修改自己的类style=""但是我无法通过按钮来改变它的风格.
看起来它可能与custom integration而不是simple integration(来源:https://stripe.com/docs/checkout#integration-simple),但我希望有一些更简单的东西.
默认样式的按钮:
有任何人对此有经验吗?
(如果有任何不同,我将整合到Ruby on Rails中.)
stripe-payments ×10
node.js ×2
angularjs ×1
cors ×1
css ×1
ios ×1
javascript ×1
payment ×1
permalinks ×1
receipt ×1
stripe.js ×1