WeChat-扫码支付
官方文档API: 打开连接
主要实现功能,网站上调起 微信支付二维码图片。
所需引用基类API:Data.cs、WxPayApi.cs、HttpService.cs、Config.cs、ThoughtWorks.QRCode.dll、可以到我github上 下载
1、C#服务端代码:直接获取你需要的二维码链接或者图片
/// <summary>
/// 微信二维码支付
/// </summary>
private void WeChat()
{
Orderid = GetOutTradeNo();//随机数字
WxPayData data = new WxPayData();
data.SetValue("body", GoodsName);//商品描述
data.SetValue("attach", Gamename);//附加数据
data.SetValue("out_trade_no", Orderid);//随机字符串
data.SetValue("total_fee", Price);//总金额 (分)正式
data.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss"));//交易起始时间
data.SetValue("time_expire", DateTime.Now.AddMinutes().ToString("yyyyMMddHHmmss"));//交易结束时间
data.SetValue("goods_tag", "cyyx");//商品标记
data.SetValue("trade_type", "NATIVE");//交易类型
data.SetValue("product_id", "");//商品ID
data.SetValue("notify_url", "http://xxxxx/Pay/WeChatPay/Notify.aspx");//回调地址 WxPayData result = WxPayApi.UnifiedOrder(data);//调用统一下单接口
string returncode = result.GetValue("return_code").ToString();
string returnmsg = result.GetValue("return_msg").ToString();
string returndata;//二维码结果,以下分为两种模式1、链接 2、图片。
if (returncode == "SUCCESS" )
{
//returndata = "QRcode.aspx?data=" + result.GetValue("code_url");//获得统一下单接口返回的二维码链接---QRcode.aspx代码在下面
string codeurl = result.GetValue("code_url").ToString();
returndata = CreateImg(codeurl, Orderid);//根据二维码链接生成本地图片并展示
Json = "{\"code\":\"1\",\"data\":\"" + returndata + "\"}";
}
else
{
returndata = returnmsg;
Json = "{\"code\":\"0\",\"data\":\"" + returndata + "\"}";
}
} /// <summary>
/// 生成图片
/// </summary>
/// <param name="codeurl">二维码链接</param>
/// <returns></returns>
private string CreateImg(string codeurl, string orderid)
{
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
qrCodeEncoder.QRCodeVersion = ;
qrCodeEncoder.QRCodeScale = ;
//将字符串生成二维码图片
System.Drawing.Image image = qrCodeEncoder.Encode(codeurl,Encoding.Default);
string filename = orderid + ".jpg";//DateTime.Now.ToString("yyyymmddhhmmssfff") + ".jpg";
string path1 = Server.MapPath(@"~\upload\QRCode");
if (!Directory.Exists(path1))
{
Directory.CreateDirectory(path1);
}
string filepath = Server.MapPath(@"~\upload\QRCode") + "\\" + filename;
FileStream fs = new FileStream(filepath, FileMode.OpenOrCreate, FileAccess.Write);
image.Save(fs, ImageFormat.Jpeg);
fs.Close();
image.Dispose();
string imageUrl = "/upload/QRCode/" + filename;
return imageUrl;
}
2、QRcode.aspx页面代码:
if (!string.IsNullOrEmpty(Request.QueryString["data"]))
{
string str = Request.QueryString["data"];
//初始化二维码生成工具
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
qrCodeEncoder.QRCodeVersion = ;
qrCodeEncoder.QRCodeScale = ;
//将字符串生成二维码图片
Bitmap image = qrCodeEncoder.Encode(str, Encoding.Default);
//保存为PNG到内存流
MemoryStream ms = new MemoryStream();
image.Save(ms, ImageFormat.Png);
//输出二维码图片
Response.BinaryWrite(ms.GetBuffer());
Response.End();
}
WeChat-扫码支付的更多相关文章
- Win10环境前后端分离项目基于Vue.js+Django+Python3实现微信(wechat)扫码支付流程(2021年最新攻略)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_182 之前的一篇文章:mpvue1.0+python3.7+Django2.0.4实现微信小程序的支付功能,主要介绍了微信小程序内 ...
- 【原创分享·微信支付】 C# MVC 微信支付教程系列之扫码支付
微信支付教程系列之扫码支付 今天,我们来一起探讨一下这个微信扫码支付.何为扫码支付呢?这里面,扫的码就是二维码了,就是我们经常扫一扫的那种二维码图片,例如,我们自己添 ...
- 微信扫码支付+Asp.Net MVC
这里的扫码支付指的是PC网站上面使用微信支付,也就是官方的模式二,网站是Asp.net MVC,整理如下.(demo在最下方) 一.准备工作 使用的微信API中的统一下单方法,关键的参数是‘公众账号I ...
- MVC 微信扫码支付
微信扫码支付有两种模式, 模式一和模式二, 两者具体的区别可参考官网文档:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_4 微 ...
- C# 微信支付教程系列之扫码支付
微信支付教程系列之扫码支付 今天,我们来一起探讨一下这个微信扫码支付.何为扫码支付呢?这里面,扫的码就是二维码了,就是我们经常扫一扫的那种二维码图片,例如,我们自己添加好友的时候 ...
- Net MVC微信扫码支付
微信扫码支付+Asp.Net MVC 这里的扫码支付指的是PC网站上面使用微信支付,也就是官方的模式二,网站是Asp.net MVC,整理如下. 一.准备工作 使用的微信API中的统一下单方法,关键的 ...
- Thinkphp5整合微信扫码支付开发实例
ThinkPHP框架是比较多人用的,曾经做过的一个Thinkphp5整合微信扫码支付开发实例,分享出来大家一起学习 打开首页生成订单,并显示支付二维码 public function index() ...
- C# MVC微信扫码支付
项目需求:学校学生网上缴费项目,刚来公司实习网上百度了各种资料,感谢很多大神避免了很多大坑. 本次扫码支付为:电脑生成二维码,手机微信扫码进行付款.建议开发前下载官方demo熟悉及后续有用到里面代码: ...
- .NET微信扫码支付模式二API接口开发测试
主要实现微信扫码支付,官网的SDKdemo 就不要使用 一直不能调试通过的,还是自己按照API接口文档一步一步来实现,吐槽下微信一点责任感都木有,能不能demo搞个正常的吗,不要坑惨了一大群码农们有点 ...
- tp5 快速接入扫码支付
前提是申请好微信支付,同时配置好key,以及支付回调地址 1.composer composer require yansongda/pay 2.引入 use Yansongda\Pay\Pay; / ...
随机推荐
- 带你走进ajax(2)
ajax原理介绍 传统的web应用 传统的web应用是客户端向服务器发送一个http请求后,客户端要一直等待服务器的响应,这时用户什么事也干不成. 最麻烦的是对于表单的提交.比如用户要填写用户信息,等 ...
- js经典面试问题:如何让for循环中的setTimeout()函数像预想中一样工作?
setTimeout()是js中的一类重要函数,将一段代码延迟一定时间并异步执行.但是这个函数经常不听话.在实践中,可能经常有人碰到类似下面的这种情况: for (var i = 1; i <= ...
- CentOS 相关软件安装 与 Siege压测
1.登录linux机器 a.打开mac的钥匙串 b.ssl root@ip c.输入密码 常用命令: cat /proc/version 查看系统版本 cat /etc/issue control ...
- ISO8583
最开始时,金融系统只有IBM这些大的公司来提供设备,象各种主机与终端等.在各个计算机设备之间,需要交换数据.我们知道数据是通过网络来传送的,而在网络上传送的数据都是基于0或1这样的二进制数据,如果没有 ...
- kali 安装virtualbox
安装virualbox 的三大步: 1.添加源: Add the following line to your /etc/apt/sources.list: deb http://download.v ...
- django的基本用法
1.项目创建 # 新建一个文件夹DjangoProjects# 切换到需要的文件夹创建虚拟环境 C:\Projects\DjangoProjects>python -m venv test_ve ...
- LeetCode——Sort List
Question Sort a linked list in O(n log n) time using constant space complexity. Solution 分析,时间复杂度要求为 ...
- 【网络结构可视化】Visualizing and Understanding Convolutional Networks(ZF-Net) 论文解析
目录 0. 论文地址 1. 概述 2. 可视化结构 2.1 Unpooling 2.2 Rectification: 2.3 Filtering: 3. Feature Visualization 4 ...
- 02_MySQL DQL_条件查询
#查询2:条件查询 /*语法: select 查询列表 from 表名 where 筛选条件; 执行顺序:找到表,逐行筛选,选出行的相关列呈现 分类: 1)按条件表达式筛选 条件运算符:> &l ...
- MATLAB 2014a (8.3) Compiler Runtime (MCR)
在安装的时候可以 ./install -H 界面化安装到自己目录下 MATLAB 2014a (8.3) Runtime Compiler (MCR) Errors when trying to la ...