最近项目需要用到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支付方法相关推荐

  1. 国外stripe支付,超简单几行代码搞定

    国外stripe支付,超简单几行代码搞定 海外的项目 需要stripe支付 很简单 几行代码 先加入依赖: compile 'com.stripe:stripe-android:6.1.2' 总共两种 ...

  2. Java对接腾讯IM以及一些方法的简单封装

    一. 腾讯IM快速入门 1. 注册腾讯云账号,找到即时通信IM控制台 腾讯IM控制台:https://console.cloud.tencent.com/im 2. 创建即时通信应用 3. 进到应用里 ...

  3. 微信支付V3版本的 签名生成,验签,解密,统一下单的简单封装

    微信支付 V3版本的 签名生成,验签,解密,统一下单的简单封装 V3Base 获取平台证书 回调报文解密 统一下单 暂时看了文档只完成了这部分,感觉封装的不是特别完美,希望有大佬指点一下,想着封装好一 ...

  4. iOS-基础控件--UITbleViewCell的自定义(高度自适应方法简单封装)

    青楼梦好,难赋深情<巨钳蟹> UITableVie 中系统的Cell共提供了四种默认样式, 分别是: UITableVieCellStyleDefault UITableVieCellSt ...

  5. stripe支付使用指南_Stripe vs Braintree:终极指南

    stripe支付使用指南 If you're developing an app that needs to accept payments, you'll likely consider Strip ...

  6. php集成Stripe支付插件,Stripe支付对接

    一.由于文档丢失原因,我就直接上代码了. 这个Stripe支付可以支持多个币种,我下面就采用"HDK"来参照支付先上一个支付效果图 提示:先上代码,在说明博主自己理解的流程. 一. ...

  7. Stripe支付 ios

    Stripe支付笔记 stripe-iOS 参考地址:https://stripe.com/docs/payments/accept-a-payment#ios-submit-payment 安装(略 ...

  8. Stripe支付简介和前端js调用

    最近公司正在做一个国际版APP,涉及到海外支付,调研过Paypal.Skrill.BrainTree.Stripe(可参考海外移动支付方案对比),最终 选择了Stripe支付.Stripe特点如下: ...

  9. 【Android】Stripe支付

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一.Stripe是什么? 二.使用步骤 1.引入库 2.配置publishable key 来和Stripe通讯 3.创建 ...

最新文章

  1. Coredata — 入门使用
  2. 一起谈.NET技术,Visual Studio自定义调试窗体两个小技巧
  3. AI专家告诉你,机器学习与深度学习如何快速进阶?
  4. 京泉华:与小米生态链公司已在智能家居领域等展开相关业务合作
  5. 利用whistle调试移动端页面
  6. oracle建立数据库的步骤,Oracle手工创建数据库的步骤
  7. 专访唐宇迪博士:我是如何迈入同济大学校园的?浅谈人工智能,未来数据挖掘和计算机视觉是风口
  8. 王二 设计模式读书笔记
  9. Find a Mother Vertex in a Graph
  10. 遗传算法pid matlab程序解释,关于遗传算法的pid整定问题
  11. java实现“进制转换-在线工具”
  12. 论文阅读:RepPoints: Point Set Representation for Object Detection
  13. 数据大屏领导驾驶舱大数据分析UI1-4(PSD-持续更新)
  14. @Slf4j注解实现日志输出
  15. Android Emulator 模拟器使用方法
  16. 拨开发展迷雾,将“智慧”嵌入全业务场景【2022戴尔科技峰会预告】
  17. 蛋糕上两只翘着二郎腿的小胖猪可爱极了
  18. 当SEA变成了BADA,让我们高呼女王万岁
  19. 视频文件大小码率计算方法
  20. 如何高效学习-随意信息处理-信息的记忆

热门文章

  1. C Note(NO.7)
  2. 今天收到了华为的录取通知
  3. 7-113 多说几遍我爱你 (5 分)
  4. 视频教程-C语言程序设计--进阶篇教学视频-C/C++
  5. C++编译时提示:error: ‘x’ does not name a type
  6. 一篇带你了解让你的眼睛写代码!Opencv实时眼球追踪,解脱的你双手!
  7. C语言如何判断回文数
  8. 教你用html和css仿制小米官网页面
  9. python 单例模式连接数据库
  10. IMCART外贸开源B2C网店系统下载