(原创分享C# MVC)微信支付之公众号支付教程

来源:互联网 发布:淘宝商品优惠券 编辑:程序博客网 时间:2024/06/02 16:13

前段时间在公司实习做了公众号的微信支付及退款,期间参考了网上一大推资料,自己也遇到了一些坑,所以把这个教程写下来方便后来人。
首先做微信支付你得先把微信官网的开发文档看一边,网址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=1_1,参考官方给的Demo。
接下来正式开始配置。现在先到微信公众号后台进行配置,

在微信支付-开发配置里面找到授权目录,授权目录就是指你要进行支付的目录,只有先进行授权你才可以进行支付的相关操作 ,比如微信官方Demo的授权目录http://paysdk.weixin.qq.com/example/

要设置授权域名,授权域名就是在公众号后台规定了哪个域名下面的目录能获取用户的信息。开发公众号支付时,在统一下单接口中要求必传用户openid,而获取openid则需要您在公众平台设置获取openid的域名,只有被设置过的域名才是一个有效的获取openid的域名,否则将获取失败!
第一步新建一个MVC的网站,将微信官方Demo里面lib和business文件夹的文件都拷过来,其实主要工作是主要是将Demo中aspx网页形式改为cshtml网页的形式。
总的代码目录如下:
这里写图片描述
在config文件中设置本公众号的基本信息:
这里写图片描述

第二步是在HomeCtroller中编写代码如下:将原来在JsApiPay.cs中的几个方法写到这个控制器页面,才能正常调用。
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
然后是对应的index.cshtml文件如下,用@ViewBag将获得共享地址的参数wxEditAddrParam从home控制器传到index页面,立即下单之后跳转到支付页。
这里写图片描述
这里写图片描述
前面的第二步是为了拿到用户的openid跟确定用户购买商品的价格,并把参数openid、total_fee传到第二个支付页面。

第三步开始写支付页面。新建一个WxPayController,进行统一下单,然后得到进行调起支付控件的参数。代码如下:
这里写图片描述
对应的支付页面的cshtml页面如下,特别号注意的是script里面传递的调起控件参数wxJsApiParam是json字符串,在js中默认会对字符串中的特殊字符进行编码,用@html.Raw()让它不转码。
这里写图片描述
这里写图片描述

完成了支付之后进行最后一步回调页面。还是在WxPayController下写回调函数,回调函数主要是为了接收成功支付之后微信支付后台发回来的信息,并验证订单是否存在。
代码如下:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

至此所有过程都完成了,关于存储到数据库的过程我就不贴出来了。来一张支付成功的页面。不管怎么说,虽然不是特别不难,但是也遇到了一些坑,学到了一些东西,所以特此记录下来。后期我再把支付的源码传上来。
这里写图片描述

原创粉丝点击