中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信小程序支付之c#后臺實現方法

發布時間:2020-09-19 06:38:03 來源:腳本之家 閱讀:396 作者:123bokeyuan123 欄目:web開發

微信小程序支付c#后臺實現

今天為大家帶來比較簡單的支付后臺處理

首先下載官方的c#模板(WxPayAPI),將模板(WxPayAPI)添加到服務器上,然后在WxPayAPI項目目錄中添加兩個“一般處理程序” (改名為GetOpenid.ashx、pay.ashx)

之后打開business目錄下的JsApiPay.cs,在JsApiPay.cs中修改如下兩處

微信小程序支付之c#后臺實現方法

然后在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/oauth3/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 
   } 
  }) 
 }, 

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江达县| 崇文区| 平罗县| 铁岭县| 漳平市| 枣庄市| 富裕县| 宜良县| 旌德县| 灌南县| 加查县| 阜阳市| 台东市| 玉环县| 德格县| 乌兰察布市| 阜南县| 综艺| 新余市| 盐边县| 牡丹江市| 巴东县| 凭祥市| 泾阳县| 临潭县| 石家庄市| 郧西县| 谷城县| 三穗县| 藁城市| 寻甸| 乃东县| 宜阳县| 石狮市| 金秀| 勐海县| 沂水县| 海林市| 专栏| 江西省| 海淀区|