主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
这次给大家带来的是微信扫码支付的Asp.Net MVC开发,以及微信扫码支付的Asp.Net MVC开发的注意事项。以下是实际案例。让我们来看看。
这里的扫码支付是指在PC网站使用微信支付,也就是官方的模式2。网站是Asp.net MVC,排列如下。(演示在底部)
一.准备工作
使用微信API中的统一下单方式,关键参数是'公众账号ID(appid)'、'商户号(mch_id)'和'商户支付密钥',所以首先要有一个经过审批的微信官方账号,并开通支付功能,然后申请商户,审批通过后得到商户号,也就是商户平台的登录名。商家支付密钥用于签名,以确保url不被篡改。进入商家平台后在API安全中设置。它是一个32位的字符串。
有了这三个参数,还需要注意的是,事务开始时间和事务结束时间之间的间隔应该大于五分钟,小于两小时。否则,在获取支付网址时会出现错误。
第二,生成支付二维码
有了以上参数,下一步就是下载SDK:。net SDK和例子。
不幸的是,官方的例子一开始并不正确。将相关的dll引用到MVC目录。并创建一个WxPayAPI文件夹来复制相关的类。
然后将WxPayConfig中的相关参数设置为自己的参数,然后修改GetPayUrl方法。
public string GetPayUrl(Order Order,string IP){ if(Order = = null){ throw new ArgumentNullException( ;订单 );} var产品=订单。OrderItems . First();wx paydata data = new wx paydata();数据。SetValue( ;appid ,WxPayConfig。APPID);数据。SetValue( ;mch _ id ,WxPayConfig。MC hid);//数据。SetValue( ;设备信息, iphone4s );数据。SetValue( ;nonce _ str ,WxPayApi。GenerateNonceStr());数据。SetValue( ;body ,产品。属性描述);//商品描述数据。SetValue( ;详细信息 ,产品。属性描述);//商品描述数据。SetValue( ;附加 , 北京分公司”);//附加数据data。SetValue( ;out _ trade _ no ,订单。trade number);//随机字符串//数据。SetValue( ;总费用 ,转换。ToInt32(订单。订单总额* 100));//总量数据。SetValue( ;总费用 , 1);//总量数据。SetValue( ;spbill _ create _ ip ,IP);//总量数据。SetValue( ;时间_开始 ,日期时间。现在。ToString( ;yyyyMMddHHmmss ));//事务开始时间数据。SetValue( ;时间到期 ,日期时间。现在。增加分钟数(30)。ToString( ;yyyyMMddHHmmss ));//事务结束时间数据。SetValue( ;商品_标签 , 智能婴儿床 );//商品标签数据。SetValue( ;通知_ url , http://www.xxxx.com/Checkout/ResultNotify&;);//通知地址数据。SetValue( ;贸易类型 , 本地 );//交易类型数据。SetValue( ;产品id ,产品。product id);//商品ID数据。SetValue( ;签名 ,数据。MakeSign());//签名记录器。信息( 获取签名"+数据。GetValue( ;签名 ));WxPayData结果= WxPayApi。UnifiedOrder(数据);//调用统一订购接口记录器。信息(结果。ToJson());字符串url =结果。GetValue( ;代码_ url ).ToString();//获取二维码链接记录器。信息( 支付网址: +网址);返回url}TradeNumber通过调用WxPayApi生成。GenerateOutTradeNo()方法,而notify_url是用户支付后微信通知的地址。金额的单位是点,只能传递给int或string。十进制需要转换。成功获取url后,在负责支付的控制器中创建一个支付方式。用于显示二维码:
result payment((argument exception(order = _ orderservice . getorderbyguid(user = = url 2 = =+=这里只返回一个URL,在页面上:
ltimg src = @ViewBag。二维码 class = 二维码 / gt;后台用qrCodeEncoder生成二维码。
public FileResult MakeQRCode(字符串数据){ if(字符串。IsNullOrEmpty(data))抛出新的argument exception( ;数据 );//初始化二维码编码器二维码编码器=新二维码编码器();二维码编码器。QR code encode = QR code encoder。编码模式。字节;二维码编码器。QR code error correct = QR code encoder。纠错。m;二维码编码器。QR code version = 0;二维码编码器。QR code scale = 4;//将字符串生成为二维码图片位图image = QR code encoder . encode(data,encoding . default);//另存为PNG到内存流memory stream ms = new memory stream();形象。保存(毫秒,图像格式。JPEG);返回文件(ms.ToArray(), 图片/JPEG ;);}成功后获取支付页面:
扫码后会弹出支付页面:
第三,回调
用户支付后,微信会向之前预留的接口发送消息(接口不能有参数)。网站收到消息后会进行核实确认,确认后再发消息到微信。详细参数和文档请参考官方API。
在这里,演示中的方法稍作修改,并放入控制器中:
公共动作结果result notify(){//接收数据流s = Request。来自微信后台帖子的InputStreamint count = 0;字节
在商家平台的后台,我们可以查询:
相信你看完这个案例已经掌握了方法。更多精彩请关注主机参考其他相关文章!
推荐阅读:
微信支付退款功能的开发
H5视频播放库video.js详解
微信H5硬件开发的控制灯光
JS中特别有用的轻量级日期插件是Asp.Net MVC开发用微信扫码支付的详细内容。请多关注主机参考其他相关文章!
这几篇文章你可能也喜欢:
- 如何安装小程序支付功能(如何安装小程序支付功能设置)
- 小程序开通微信支付功能的具体步骤(小程序如何开通微信支付)
- 微信开发的微信支付(微信支付系统开发)
- 通过php实现APP微信支付的实例分析(PHP实现微信支付功能)
- 微信官方账号支付接口开发(微信官方账号支付接口)
本文由主机参考刊发,转载请注明:微信扫码支付的Asp.Net MVC开发 https://zhujicankao.com/80830.html
评论前必须登录!
注册