我正在尝试在我的应用中实施Stripe付款https://stripe.com/.我需要包含这个库https://stripe.com/docs/libraries.我下载并安装在Lib/site-packages上.我检查了IDLE并且import stripe工作.如何将其包含在我的应用程序文件夹中?
在Stripe文档中,示例表单显示以下输入
<input type="text" size="20" data-stripe="number"/>
Run Code Online (Sandbox Code Playgroud)
我在ruby(rails 4)中使用以下代码来生成我的输入
<%= text_field_tag :card_number, nil, name: nil, :placeholder => "Card Number" %>
Run Code Online (Sandbox Code Playgroud)
产生
<input id="card_number" placeholder="Card Number" type="text" />
Run Code Online (Sandbox Code Playgroud)
但是,我无法添加data-stripe属性.我想我总是可以手动添加字段而不是使用rails功能.但是,替换其他功能(例如select_year和)会很繁琐select_month.那么,如何在使用rails生成输入时添加自定义属性?特别,data-stripe="number"
假设用户想要取消他们的订阅,所以我发出如下命令:
stripe_subscription.delete(at_period_end: true)
Run Code Online (Sandbox Code Playgroud)
但是,在此期间结束之前,用户会改变主意.是否有我可以发出撤消预定取消的电话?
如果没有,实现这个的最佳方法是什么?我最好的猜测是这样的:
new_subscription = stripe_customer.subscriptions.create(plan: stripe_subscription.plan.id, trial_end: stripe_subscription.current_period_end)
stripe_subscription.delete() # if permitted
self.stripe_subscription = new_subscription
save!
Run Code Online (Sandbox Code Playgroud)
我能做些什么吗?
我已经研究过如何使用React native实现Stripe,但还没有找到一个可行的方法.显然,React Native不支持http模块,因此必须使用Stripe API fetch(如http://blog.bigbinary.com/2015/11/03/using-stripe-api-in-react-native-with中所述) -fetch.html).
所以我的问题是,对Stripe API端点使用fetch方法是一个很好的替代方案stripe.js吗?如果不使用,我会错过任何事情stripe.js吗?另外,stripe.jsStripe SDK的另一个名称是什么?
最后,通过使用fetch到Stripe API端点代替stripe.js,它是否仍然被认为是完全符合PCI的集成,如https://stripe.com/docs/security中所述?
先感谢您
我需要将条带导入到我的应用程序中
首先我安装了条纹npm包
npm install stripe --save
Run Code Online (Sandbox Code Playgroud)
条带文档说在连接api之前应该设置密钥.
在Node中它喜欢这个
var stripe = require('stripe')(' your stripe API key ');
Run Code Online (Sandbox Code Playgroud)
我需要将其转换为打字稿
我尝试了以下方式.但它对我没有用
import * as stripe from 'stripe';
stripe('sk_test_...')
Run Code Online (Sandbox Code Playgroud)
如果有人可以帮助我解决这个问题,那将毫不拖延地继续我的项目将对我有很大帮助.
谢谢
我让它在我的生产服务器上工作,但是在localhost canMakePayment()return上null。
我已经通过最小的Stripe代码跟踪了这一点,但是遇到了一个函数ko,该函数只是将调用发送CAN_MAKE_PAYMENT到某个消息队列,此后执行将变为异步,并且e.available === false在没有进一步信息的情况下解决请求之前,我无法进行进一步跟踪。
我已验证该API确实可在localhost上的Chrome浏览器中使用(window.PaymentRequest可用)。我也在本地运行https(尽管没有绿色复选标记)。
如何跟踪导致Stripe报告PaymentRequest不可用的原因?如果我没有绿色的SSL支票,Chrome会拒绝PaymentRequest呼叫吗?如果是这样,我将如何测试?Chrome文档只是说如果PaymentRequest可用,那么您可以调用API。
如果我知道在哪里处理消息队列,则可以进一步调试。
我正在创建一个客户对象并将它们分配给 Stripe 中的一个计划,但出现错误“不存在这样的计划”。错误中给出的计划 ID 是正确的计划 ID:No such plan: prod_EIcYiWkVa7LF7T
可能值得注意的是,客户的 StripeCustomerId 也没有写入数据库,但这可能是因为代码稍后失败,因此没有进行任何更改。
[HttpPost]
[Authorize]
public ActionResult Subscribe(SubscribeViewModel model)
{
string CurrentUserId = User.Identity.GetUserId();
var CurrentUser = UserManager.FindById(CurrentUserId);
StripeConfiguration.SetApiKey(ConfigurationManager.AppSettings["StripeSecretKey"]);
var custoptions = new CustomerCreateOptions
{
Description = "Customer object for " + CurrentUser.Email,
SourceToken = model.StripeToken
};
var custservice = new CustomerService();
Customer customer = custservice.Create(custoptions);
CurrentUser.StripeCustomerId = customer.Id;
var items = new List<SubscriptionItemOption>
{
new SubscriptionItemOption
{
PlanId = db.Plans.Where(a=>a.Id == CurrentUser.Plan).FirstOrDefault().StripePlanId
}
};
var options = new SubscriptionCreateOptions …Run Code Online (Sandbox Code Playgroud) 在条纹文档中,我可以轻松创建这样的卡片
var cardElement = elements.create("card");
Run Code Online (Sandbox Code Playgroud)
我只是简单地传递cardElement给confirmCardPayment
stripe.confirmCardPayment("{PAYMENT_INTENT_CLIENT_SECRET}", {
payment_method: {
card: cardElement,
},
});
Run Code Online (Sandbox Code Playgroud)
但是,出于视觉样式 css 的原因,我必须cardElement像这样分成三部分:
var cardNumberElement = elements.create("cardNumber");
var cardExpiryElement = elements.create("cardExpiry");
var cardCvcElement = elements.create("cardCvc");
Run Code Online (Sandbox Code Playgroud)
然后我想打电话stripe.confirmCardPayment,我现在该怎么办?
该文档仅显示cardElement方法,没有拆分示例。
我刚刚更换了带有 M1 芯片的新 MacBook Pro,但无法在 Xcode 上构建我的应用程序。我已经更新了所有的 cocoaPods 并且已经在终端中安装了 sudo gem cocoa pods install 命令和 Rosetta。这是我得到的两个错误并使构建失败:
'new' is unavailable: You cannot directly instantiate an STPIssuingCardPin
Run Code Online (Sandbox Code Playgroud) stripe-payments ×10
javascript ×2
asp.net-mvc ×1
c# ×1
fetch ×1
node.js ×1
python ×1
react-jsx ×1
react-native ×1
ruby ×1
stripe.net ×1
swift ×1
typescript ×1
xcode ×1