简单封装的Stripe支付方法
最近项目需要用到Stripe支付,于是做了一个简单封装,现在贴出来,也许以后用得着
首先,需要在Stripe官方网站申请注册自己的支付帐号,并获取测试和正式用的前后端校验码。
然后,项目后台需要添加Stripe的dll引用,可以用Nuget安装Stripe.net,也可以自己下载dll然后直接添加引用,这里不赘述了。
需要提醒的是,测试用的银行卡信息如下:
卡号:4242 4242 4242 4242, 到期时间12/19, 校验码:123
首先,当然是引用stripe的js文件:
<script type="text/javascript" src="https://checkout.stripe.com/checkout.js"></script>
好了,再看前端的js封装对象:
var myStripe = {testKey: 'pk_test_xxxxxxxxxxxxxxxxxxxxxx',payKey: 'pk_live_yyyyyyyyyyyyyyyyyyyyyy',logoImg: "/Images/marketplace.png",changeHandler: function (f) {return StripeButton.configure({key: this.testKey,image: f.logoImg ||this.logoImg,name: f.title || 'Update Card Detail',panelLabel: f.button || 'Submit',allowRememberMe: false,locale: 'auto',dataKey: this.testKey,token: function (token) {f.email = token.email;f.tokenId = token.id;f.callback(f);}});},payHandler: function (f) {return StripeCheckout.configure({key: this.testKey,name: f.title || 'Payment',email:f.Email || '',currency: f.currency || 'cad',amount: f.amount || 0,allowRememberMe: false,image: f.logoImg || this.logoImg,locale: 'auto',token: function (token) {f.tokenId = token.id;f.email = token.email;f.callback(f);}});},changeCard: function (f) {this.changeHandler(f).open();},pay: function (f) {this.payHandler(f).open();}
}
再贴调用举例:
//支付$('#btnPay').on('click', function () {myStripe.pay({title: 'Pay for shop service',currency:'cad',amount: pay.amount,callback: function (p) {var dt = {TokenID: this.tokenId,Amount: 6500,Email: this.email}vivaAjax('/Base/StripePay', dt, null, function (re) {if (re.Code == 'Success') {alert('Pay successful!');} else {alert(re.Message);}});}});});//换卡$('#btnChangeCard').on('click', function () {myStripe.changeCard({title: 'Change Card for Stripe Pay',callback: function (p) {var dt = {TokenID: this.tokenId,Email: this.email}vivaAjax('/Base/StripeChangeCard', dt, null, function (re) {if (re.Code == 'Success') {alert('Change card successful!');} else {alert(re.Message);}});}});});
最后是后台方法:
using Stripe;/// <summary>/// 支付/// </summary>/// <param name="email"></param>/// <param name="tokenId"></param>/// <param name="ammount"></param>/// <returns></returns>public ReturnMsg StripePay(string email, string tokenId, int ammount){//第一次充值,创建用户充值帐号if (string.IsNullOrWhiteSpace(User.ChargeID)){var customers = new StripeCustomerService("sk_test_xxxxxxxxxxxxxxxxxxxxxxx");//测试用后台校验码,注意,后台校验码也分测试和正式var customer = customers.Create(new StripeCustomerCreateOptions{Email = email,SourceToken = tokenId});User.ChargeID = customer.Id; //本地保存的凭证,避免本地存储用户敏感信息}//充值var charges = new StripeChargeService("sk_test_xxxxxxxxxxxxxxxxxxxxxxx");var charge = charges.Create(new StripeChargeCreateOptions{Amount = ammount,Currency = "cad",CustomerId = User.ChargeID});if (charge.Status == "succeeded"){//充值成功}else{//充值失败ReMsg.Type = MessageType.AmountPayError;}return ReMsg;}/// <summary>/// 换卡/// </summary>/// <param name="email"></param>/// <param name="tokenId"></param>/// <returns></returns>public ReturnMsg StripeChangeCard(string email, string tokenId){var customers = new StripeCustomerService("sk_test_xxxxxxxxxxxxxxxxxxxxxxx");var customer = customers.Create(new StripeCustomerCreateOptions{Email = email,SourceToken = tokenId});User.ChargeID = customer.Id; //本地保存的凭证,避免本地存储用户敏感信息return ReMsg;}
如果对大家有用,欢迎收藏,如有问题,也请及时跟我联系或留言
简单封装的Stripe支付方法相关推荐
- 国外stripe支付,超简单几行代码搞定
国外stripe支付,超简单几行代码搞定 海外的项目 需要stripe支付 很简单 几行代码 先加入依赖: compile 'com.stripe:stripe-android:6.1.2' 总共两种 ...
- Java对接腾讯IM以及一些方法的简单封装
一. 腾讯IM快速入门 1. 注册腾讯云账号,找到即时通信IM控制台 腾讯IM控制台:https://console.cloud.tencent.com/im 2. 创建即时通信应用 3. 进到应用里 ...
- 微信支付V3版本的 签名生成,验签,解密,统一下单的简单封装
微信支付 V3版本的 签名生成,验签,解密,统一下单的简单封装 V3Base 获取平台证书 回调报文解密 统一下单 暂时看了文档只完成了这部分,感觉封装的不是特别完美,希望有大佬指点一下,想着封装好一 ...
- iOS-基础控件--UITbleViewCell的自定义(高度自适应方法简单封装)
青楼梦好,难赋深情<巨钳蟹> UITableVie 中系统的Cell共提供了四种默认样式, 分别是: UITableVieCellStyleDefault UITableVieCellSt ...
- stripe支付使用指南_Stripe vs Braintree:终极指南
stripe支付使用指南 If you're developing an app that needs to accept payments, you'll likely consider Strip ...
- php集成Stripe支付插件,Stripe支付对接
一.由于文档丢失原因,我就直接上代码了. 这个Stripe支付可以支持多个币种,我下面就采用"HDK"来参照支付先上一个支付效果图 提示:先上代码,在说明博主自己理解的流程. 一. ...
- Stripe支付 ios
Stripe支付笔记 stripe-iOS 参考地址:https://stripe.com/docs/payments/accept-a-payment#ios-submit-payment 安装(略 ...
- Stripe支付简介和前端js调用
最近公司正在做一个国际版APP,涉及到海外支付,调研过Paypal.Skrill.BrainTree.Stripe(可参考海外移动支付方案对比),最终 选择了Stripe支付.Stripe特点如下: ...
- 【Android】Stripe支付
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一.Stripe是什么? 二.使用步骤 1.引入库 2.配置publishable key 来和Stripe通讯 3.创建 ...
最新文章
- Coredata — 入门使用
- 一起谈.NET技术,Visual Studio自定义调试窗体两个小技巧
- AI专家告诉你,机器学习与深度学习如何快速进阶?
- 京泉华:与小米生态链公司已在智能家居领域等展开相关业务合作
- 利用whistle调试移动端页面
- oracle建立数据库的步骤,Oracle手工创建数据库的步骤
- 专访唐宇迪博士:我是如何迈入同济大学校园的?浅谈人工智能,未来数据挖掘和计算机视觉是风口
- 王二 设计模式读书笔记
- Find a Mother Vertex in a Graph
- 遗传算法pid matlab程序解释,关于遗传算法的pid整定问题
- java实现“进制转换-在线工具”
- 论文阅读:RepPoints: Point Set Representation for Object Detection
- 数据大屏领导驾驶舱大数据分析UI1-4(PSD-持续更新)
- @Slf4j注解实现日志输出
- Android Emulator 模拟器使用方法
- 拨开发展迷雾,将“智慧”嵌入全业务场景【2022戴尔科技峰会预告】
- 蛋糕上两只翘着二郎腿的小胖猪可爱极了
- 当SEA变成了BADA,让我们高呼女王万岁
- 视频文件大小码率计算方法
- 如何高效学习-随意信息处理-信息的记忆