最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

微信小程序支付之c#后台实现方法实例详解

来源:懂视网 责编:小OO 时间:2020-11-27 20:07:01
文档

微信小程序支付之c#后台实现方法实例详解

微信小程序支付c#后台实现。今天为大家带来比较简单的支付后台处理。首先下载官方的c#模板(WxPayAPI),将模板(WxPayAPI)添加到服务器上,然后在WxPayAPI项目目录中添加两个“一般处理程序” (改名为GetOpenid.ashx、pay.ashx)。之后打开business目录下的JsApiPay.cs,在JsApiPay.cs中修改如下两处。然后在GetOpenid.ashx中加入代码如下:
推荐度:
导读微信小程序支付c#后台实现。今天为大家带来比较简单的支付后台处理。首先下载官方的c#模板(WxPayAPI),将模板(WxPayAPI)添加到服务器上,然后在WxPayAPI项目目录中添加两个“一般处理程序” (改名为GetOpenid.ashx、pay.ashx)。之后打开business目录下的JsApiPay.cs,在JsApiPay.cs中修改如下两处。然后在GetOpenid.ashx中加入代码如下:
本文主要介绍了微信小程序支付之c#后台实现方法的相关资料,希望通过本文能帮助到大家,让大家实现这样的功能,需要的朋友可以参考下,希望能帮助到大家。

微信小程序支付c#后台实现

今天为大家带来比较简单的支付后台处理

首先下载官方的c#模板(WxPayAPI),将模板(WxPayAPI)添加到服务器上,然后在WxPayAPI项目目录中添加两个“一般处理程序” (改名为GetOpenid.ashx、pay.ashx)

之后打开business目录下的JsApiPay.cs,在JsApiPay.cs中修改如下两处

然后在GetOpenid.ashx中加入代码如下:

public class GetOpenid : IHttpHandler 
 { 
 public string openid { get; set; } 
 
 public void ProcessRequest(HttpContext context) 
 { 
 
 string code = HttpContext.Current.Request.QueryString["code"]; 
 WxPayData data = new WxPayData(); 
 data.SetValue("appid", WxPayConfig.APPID); 
 data.SetValue("secret", WxPayConfig.APPSECRET); 
 data.SetValue("code", code); 
 data.SetValue("grant_type", "authorization_code"); 
 string url = "https://api.weixin.qq.com/sns/oauth2/access_token?" + data.ToUrl(); 
 
 //请求url以获取数据 
 string result = HttpService.Get(url); 
 
 Log.Debug(this.GetType().ToString(), "GetOpenidAndAccessTokenFromCode response : " + result); 
 
 //保存access_token,用于收货地址获取 
 JsonData jd = JsonMapper.ToObject(result); 
 //access_token = (string)jd["access_token"]; 
 
 //获取用户openid 
 openid = (string)jd["openid"]; 
 context.Response.Write(openid);//获取H5调起JS API参数 
 
 }

在pay.ashx中加入代码如下:

public class pay : IHttpHandler 
 { 
 
 public void ProcessRequest(HttpContext context) 
 { 
 context.Response.ContentType = "text/plain"; 
 
 string openid = HttpContext.Current.Request.QueryString["openid"]; 
 string total_fee = HttpContext.Current.Request.QueryString["total_fee"]; 
 JsApiPay jsApiPay = new JsApiPay(context); 
 jsApiPay.openid = openid; 
 jsApiPay.total_fee = int.Parse(total_fee); 
 WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult(); 
 context.Response.Write(jsApiPay.GetJsApiParameters());//获取H5调起JS API参数 
 }

然后发布就可以了(记得将相关的信息appid等填好)

微信小程序的代码如下:

wxpay: function () { 
 var that = this 
 //登陆获取code 
 wx.login({ 
 success: function (res) { 
 console.log(res.code) 
 //获取openid 
 that.getOpenId(res.code) 
 } 
 }); 
 }, 
 getOpenId: function (code) { 
//获取openID 
 
 var that = this; 
 wx.request({ 
 url: 'http://*******/WxPayAPI/GetOpenid.ashx?code='+ code , //改为自己的域名
 data: {}, 
 // method: 'GET', 
 success: function (res) { 
 var a12=res.data 
 that.generateOrder(a12) 
 //console.log(a12) 
 }, 
 fail: function () { 
 // fail 
 }, 
 complete: function () { 
 // complete 
 } 
 }) 
 }, 
/**生成商户订单 */ 
 generateOrder: function (openid) { 
 var that = this; 
 //console.log(openid) 
 //统一支付 
 wx.request({ 
 url: 'http://*******/WxPayAPI/pay.ashx', //改为自己的域名
 //method: 'GET', 
 data: { 
 total_fee: 1,//1分 
 openid: openid, 
 }, 
 header: { 
 'content-type': 'application/json' 
 }, 
 
 success: function (res) { 
 
 var pay = res.data 
 //发起支付 
 
 var timeStamp = pay.timeStamp; 
 var packages = pay.package; 
 var paySign = pay.paySign; 
 var nonceStr = pay.nonceStr; 
 var param = { "timeStamp": timeStamp, "package": packages, "paySign": paySign, "signType": "MD5", "nonceStr": nonceStr }; 
 
 that.pay(param) 
 }, 
 }) 
 }, 
 
 /* 支付 */ 
 pay: function (param) { 
 
 wx.requestPayment({ 
 timeStamp: param.timeStamp, 
 nonceStr: param.nonceStr, 
 package: param.package, 
 signType: param.signType, 
 paySign: param.paySign, 
 success: function (res) { 
 // success 
 
 wx.navigateBack({ 
 delta: 1, // 回退前 delta(默认为1) 页面 
 success: function (res1) { 
 wx.showToast({ 
 title: '支付成功', 
 icon: 'success', 
 duration: 2000 
 }); 
 
 }, 
 fail: function () { 
 // fail 
 
 }, 
 complete: function () { 
 
 } 
 }) 
 }, 
 fail: function (res) { 
 // fail 
 }, 
 complete: function () { 
 // complete 
 } 
 }) 
 },

文档

微信小程序支付之c#后台实现方法实例详解

微信小程序支付c#后台实现。今天为大家带来比较简单的支付后台处理。首先下载官方的c#模板(WxPayAPI),将模板(WxPayAPI)添加到服务器上,然后在WxPayAPI项目目录中添加两个“一般处理程序” (改名为GetOpenid.ashx、pay.ashx)。之后打开business目录下的JsApiPay.cs,在JsApiPay.cs中修改如下两处。然后在GetOpenid.ashx中加入代码如下:
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top