我要把第一个带有条纹的网站放在一起,但我觉得我可以设计出比我更好的条纹集成.我遇到的主要问题是,如何维护条带帐户的状态(试用和过期等)什么是重要的webhooks(以及处理所有事件的最佳方式),以及我应该有多少数据在我的数据库中重复,我应该从Stripe数据库中提取多少.
愿意在最好的方面提出一些想法.作为参考,我在Ruby on rails上开发了我的站点,部署到heroku,使用send grid heroku add来发送有关账单,延迟付款等的电子邮件通知.
另外对于那些在RoR上使用条带的人来说,这里有一些很好的资源(虽然我没有找到一个真正涵盖带有条带的定期/订阅计费):
RailsCast:
当然条纹文档和api:
这个用于webhooks /邮件的小代码
我正在构建一个简单的注册和登录的iPhone应用程序.
当用户注册/登录时,我希望Ruby(Sinatra)服务器生成/获取并返回该用户的访问令牌,然后iPhone客户端可以使用HTTPS上的基本身份验证随后发送每个后续请求.
我还没有实施OAuth 2.0,以便第三方应用可以访问服务器.现在,我只是构建一个简单的内部API(对于我自己的第一方iPhone应用程序).
基本上,我想生成像Stripe一样的秘密API密钥:https://manage.stripe.com/account/apikeys
例如: sk_test_NMss5Xyp42TnLD9tW9vANWMr
在Ruby中,最好的方法是什么?
我正在尝试使用rails应用程序中的自定义集成实现Stripe Checkout - 我的结帐表单显示绿色复选标记,表示已提交,但付款未处理.简单的集成效果很好,我网站其他部分的订阅付款也是如此.
就像简单的集成一样,我试图将自定义集成脚本放在form_tag中 - 我遵循Rails Checkout指南,遗憾的是,它只是为简单的集成而编写的.像指南一样,我有一个收费控制器,有新的和创建动作来显示表格并创建收费.
收费控制器:
class ChargesController < ApplicationController
def new
end
def create
# Amount in cents
@amount = 500
customer = Stripe::Customer.create(
:email => params[:stripeEmail],
:card => params[:stripeToken]
)
charge = Stripe::Charge.create(
:customer => customer.id,
:amount => @amount,
:description => 'Rails Stripe customer',
:currency => 'usd'
)
rescue Stripe::CardError => e
flash[:error] = e.message
redirect_to charges_path
end
end
Run Code Online (Sandbox Code Playgroud)
在我的新视图中,表单设置如下:
<%= form_tag charges_path do %>
<script src="https://checkout.stripe.com/checkout.js"></script>
<button id="customButton" class="btn btn-large btn-primary">Buy …Run Code Online (Sandbox Code Playgroud) 我已将条带客户ID保存在我的数据库中,以便以后付款.客户将拥有多张卡,我希望使用现有卡检查/验证新客户卡.
假设相同的卡详细信息可以作为多个卡存储多次.
我想使用Stripe令牌检查新输入的卡是否已存在.如果它已经存在,它将使用它,否则它将创建一张新卡.
在我的应用程序中,用户每月订阅(和计费)24个月.在我最初创建订阅的第24个月之后,有没有办法让Stripe自动结束订阅?
我使用Stripe Checkout.js来创建付款.我正在创建一个处理程序,成功时会向服务器发送一个令牌:
let handler = StripeCheckout.configure({
key: 'my_key',
image: 'image.png',
locale: 'auto',
token: token => {
console.log(token.id);
// ... send token to server
}
});
Run Code Online (Sandbox Code Playgroud)
然后我使用处理程序创建一个令牌:
handler.open({
name: 'Test',
description: 'test',
billingAddress: false,
currency: 'eur',
amount: '1200',
});
Run Code Online (Sandbox Code Playgroud)
这个处理程序触发测试checkout.js弹出窗口,我填写并单击Pay.它成功结束,意味着按钮显示为绿色.
但是,在按钮显示绿色的那一刻,以及将令牌打印到控制台的那一刻(在处理程序成功回调上),会抛出错误:
EXCEPTION:TypeError:将循环结构转换为JSON
stacktrace的主要部分是:
TypeError: Converting circular structure to JSON
at Object.stringify (native)
at Object.stringify (http://localhost:5000/dist/client/bundle.js:46294:29)
at RPC.sendMessage (https://checkout.stripe.com/checkout.js:1:18068)
at RPC.sendMessage (https://checkout.stripe.com/checkout.js:1:16180)
at https://checkout.stripe.com/checkout.js:1:17137
at RPC.ready (https://checkout.stripe.com/checkout.js:1:17416)
at RPC.invoke (https://checkout.stripe.com/checkout.js:1:17084)
at RPC.invoke (https://checkout.stripe.com/checkout.js:1:16180)
at RPC.processMessage (https://checkout.stripe.com/checkout.js:1:18899)
at RPC.processMessage (https://checkout.stripe.com/checkout.js:1:16180)
Run Code Online (Sandbox Code Playgroud)
通过检查代码,我们看到问题在这里:
RPC.prototype.sendMessage = …Run Code Online (Sandbox Code Playgroud) 我使用Stripe付款.为此,我在Firestore中有以下数据模型:
Users/{userId}/payments/{document}
Run Code Online (Sandbox Code Playgroud)
每个{document}都是一个看起来像这样的对象:
{
amount: 55
token: {...}
charge: {...}
}
Run Code Online (Sandbox Code Playgroud)
用户必须能够编写该token字段(这是传递给服务器的内容),但我不希望用户能够编写该charge字段.
目前我的规则允许任何用户读取和写入此文档:
match /payments/{documents} {
allow read, write: if request.auth.uid == userId;
}
Run Code Online (Sandbox Code Playgroud)
什么Firestore规则将实现我所期望的安全性?
stripe-payments firebase firebase-security google-cloud-firestore
我正在尝试使用 stripe_ payment 包在我的 flutter 应用程序中实现 Stripe 支付系统。在我的代码中,我调用 Stripe.instance.initPaymentSheet(...),但是当我尝试在几行之后调用 Stripe.instance.presentPaymentSheet(...) 时,出现以下错误:
flutter: StripeException(error: LocalizedErrorMessage(code: FailureCode.Failed, localizedMessage: No payment sheet has been initialized yet, message: No payment sheet has been initialized yet, stripeErrorCode: null, declineCode: null, type: null))
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
Future<void> makePayment() async {
final url = Uri.parse(
'${firebaseFunction}');
final response =
await http.get(url, headers: {'Content-Type': 'application/json'});
this.paymentIntentData = json.decode(response.body);
await Stripe.instance.initPaymentSheet(
paymentSheetParameters: SetupPaymentSheetParameters(
paymentIntentClientSecret: paymentIntentData!['paymentIntent'],
applePay: true,
googlePay: true,
style: ThemeMode.dark,
merchantCountryCode: 'UK',
merchantDisplayName: 'Test Payment Service'));
setState(() {});
print('initialised');
try …Run Code Online (Sandbox Code Playgroud) 我正在尝试找到一种使用带有反应原生的条带的好方法.优选地,不涉及将信用卡详细信息发送到我自己的后端或将我的条带私钥存储在应用程序中.欢迎任何想法!谢谢
stripe-payments ×10
access-token ×1
android ×1
angular ×1
api ×1
api-key ×1
braintree ×1
credit-card ×1
firebase ×1
flutter ×1
ios ×1
javascript ×1
payment ×1
react-native ×1
webhooks ×1