c# winform 支付宝付款
添加支付宝付款,这里主要就是面对面付款,扫码支付,出来二维码,用户扫了之后就出现价格,内容,支付后获取结果,效果先放出来:
说明:开始是要输入订单号的,由于订单号必须没有重复的,为了方便,我就连接了数据库,自动生成订单号。二维码出现之后,就每隔5s中询问是否成功。
1、官方文档:https://docs.open.alipay.com/194/106039/
2、沙箱环境介绍
为了可以使用支付宝,首先需要创建应用获取appid,这些步骤参考官方文档都有,但是,刚开始没有的时候,也可以使用支付宝提供的沙箱环境,https://openhome.alipay.com/platform/appDaily.htm,
这边它提供了相关的APPID和支付宝网关,但是RSA2密钥需要设置,后面在应用里会用到这个。
还有个沙箱钱包,可以下载一下,后面完成应用之后可以付款,试试行不行的,目前只有安卓。说明官网都有。
3、下载SDK
官网提供了Demo和SDK的下载
https://docs.open.alipay.com/194/105201/
但我觉得就.NET部分,这个demo我还是并不太明白的样子。
4、正式进行开发工作啦
- 新建wpf项目之后,右击解决方案-》添加->现有项目
把下载的SDK里的项目加入进去。 - 右击我们的窗体。添加引用。
- 支付的整个过程如图所示
上面是宏观的过程
具体看下面这个,其实官网已经写得很明白的,总的来说还是蛮简单的。
所以呢接下,我们先- 新建一个变量private IAopClient client;,初始化配置好
```csharppublic AliPay(){client = new DefaultAopClient("https://openapi.alipaydev.com/gateway.do", "你的appid", "你的私钥" ,"json","1.0", "RSA2","支付宝公钥");}
第一个参数是网址,注意了正式的和沙箱环境的网址是不一样的。
第二个参数是appID,第三个是
- 预下单:调用预下单接口alipay.trade.precreate
AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();request.BizContent = "{" +"\"out_trade_no\":\"" + trade_no + "\"," +//商户订单号"\"total_amount\":" + trade_money + "," +"\"subject\":\"" +trade_subject + "\"," +" \"timeout_express\":\"90m\"}";AlipayTradePrecreateResponse response = client.Execute(request);
新建订单时要注意哦:商户订单号是唯一的。
response里面就保存了这次预订单生成的结果,
response.IsError如果是true,则有错,可以通过查看response.Msg来获取出错信息。
如果成功的话,response里会保存二维码网址。
- 生成二维码
通过response里面的网址,生成二维码,关于如何生成二维码,可以看看这篇文章:生成二维码 - 将二维码生成成功并且放到窗口之后,用户就可以扫码了,如何检测用户是否扫成功呢?有两种方式,这边我用的是轮询,每隔5s查查结果,看看成功了没呀,到一定时间还没成功,那就支付失败啦。
我新建了一个用来查询的线程。
private void Query(){Thread thread = new Thread(LoopQuery);thread.IsBackground = true;thread.Start();}private void LoopQuery(object msg){int i = 0;AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();request.BizContent = "{" +"\"out_trade_no\":\"" + trade_no + "\"" +"}";for (i = 0; i < 3; i++){Thread.Sleep(5000); //每隔5s查询一次AlipayTradeQueryResponse response = client.Execute(request);MessageBox.Show(response.Body);if (response.TradeStatus == "TRADE_SUCCESS")break;}if (i>=3)MessageBox.Show("还未成功付款哦");else{MessageBox.Show("成功付款");state = 1;}database.InsertNewTradeRecord(trade_no, trade_subject, trade_money, state);}
好了,基本就这样啦。
c# winform 支付宝付款相关推荐
- Google Ads支付宝付款功能正式上线
4月18日消息,据悉,Google Ads正式上线支付宝付款功能,无论是个人账户还是公司账户,现在都能用支付宝付款. Google Ads具有搜索和展示功能,可覆盖全世界约90%的互联网用户,每年都有 ...
- [转载] 支持支付宝付款的四大国外主机
国内的互联网风暴尤甚,使得很多站长转战国外,购买国外主机了,购买国外主机的原因,我也不多说了,相信,只要是中国的站长,只要是经历过这场风暴的站长,都会知道的. 而国外的IDC们也看中了国内巨大的潜力, ...
- ecshop支付宝付款成功后台显示未付款
ecshop支付宝前台付款后台显示未付款处理成已付款 网站根目录下respond.php,在文件中搜索: if (file_exists($plugin_file)) 改成 if (file_exis ...
- SpringBoot整合支付宝付款(沙箱环境)
由于最近的一个SpringBoot项目中需要整合支付宝付款,所以将过程整理在此,方便查阅.测试前提需要一个支付宝提供的沙箱环境,如果你还没有这种测试账号,可以看姊妹篇获得支付宝沙箱账号 一.引入依赖 ...
- TP5.1实现支付宝线下收银(扫码枪扫描用户支付宝付款码支付)
1.在支付宝开放平台创建账号,选取支付方式---当面付,若需要其他的也可以一并加入,申请审核通过后,该支付需要签约,点击签约,按流程签约即可. 2.在申请过程中,接口加签方式需要在支付宝生成钥匙工具里 ...
- Python网上商城源代码,基于Django+MySQL+Redis,支持支付宝付款
Python网上商城源代码,基于Django+MySQL+Redis,支持支付宝付款,实现:用户登录注册,商品展示,商品详情界面,搜索商品,将不同尺寸颜色数量的商品加入购物车,购物车管理,地址管理,形 ...
- GoDaddy用支付宝付款时出现我们无法处理这笔交易,请查看您的付款信息并重试。...
一.GoDaddy操作流程 在GoDaddy上购买及注册域名的操作步骤,请参考https://www.jianshu.com/p/05289a4bc8b2进行操作. 二.我遇到的问题 今天用GoDad ...
- Django学习记录10——Django使用支付宝付款(电脑支付,手机网页支付,面对面扫码)
目录 一.注册支付宝开放平台账号 1.注册 2.创建公私秘钥 2.项目中添加公私密钥 二.生成二维码 1.安装模块等 2.模块的结构 3.电脑支付 4.手机支付 5.面对面扫码(真二维码支付) 三.小 ...
- 上海地铁明年初将可扫码和刷脸进站 支持支付宝付款
12月5日消息,上海申通地铁集团与阿里巴巴.蚂蚁金服于今日达成三方战略合作,阿里巴巴.蚂蚁金服最新研发的语音购票.刷脸进站.智能客流分析等多项技术首度惊艳亮相,上海地铁建设的"METRO大 ...
- 支付宝付款码支付以及退款流程代码
支付宝付款码支付接入流程. 官方文档地址: 小程序文档 - 支付宝文档中心 接入前提: 去控制台申请appId.应用私钥.支付宝公钥(注意不是应该公钥).环境区分(有沙箱和正式环境区分) 代码贴图: ...
最新文章
- 哀悼!华人著名计算机科学家刘炯朗逝世,图灵奖得主姚期智为其得意门生
- [JS]视频总结-第三部分_深入javascript
- Java数据结构和算法(十)——二叉树
- html5子页面无法弹出,弹出子页面,兼容ie
- 模拟登录QQ判断是否需要验证码
- usb一转多 树莓派zero_树莓派 Zero USB/以太网方式连接配置教程
- 以太坊web3.js文档翻译及说明
- 报表服务框架:WEB前端UI
- 团队作业三——项目思考
- php 浏览器 保存网页图片,PHP实现浏览器文件下载图片或者php文件
- 阿里网盘官网网页,怎么隐藏的这么深
- 【linux】按键盘Backspace键终端出现^H
- FPGA之乒乓Buffer
- win10专业版进不了安全模式 win10专业版安全模式怎么进
- 解开MongoDB神秘的面纱
- Oracle Database-基础及查询部分
- 编码解码--url编码解码
- html写出带有表格标题的三行三列表格
- python_path
- 自制表情包!android,diy表情包制作软件下载-diy表情包 安卓版v2.6.0-PC6安卓网
热门文章
- 匠心独运解读Mybatis源码,纯手工打造开源框架
- python 开任意数的平方
- 制造企业总体规划的四个战略目标
- python中扑克牌类设计_创建扑克牌类Python
- java faker_Faker--伪造数据利器
- JavaScript实现语音助手核心代码
- echarts 地图自定义图标_echarts 使用 百度地图 加入自定义图标标记
- Dell R730 xd “CPU 2 M23 VPP PG voltage is outside of range“故障
- 10年的工作经验?还是1个经验反复用了10年?
- Redis Client 之 Jedis与Lettuce