成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C# 微信支付回調驗簽處理

開發 后端
在微信支付中,當用戶支付成功后,微信會把相關支付結果和用戶信息發送給商戶,商戶需要接收處理,并返回應答。接收微信支付異步通知回調地址也是有要求:通知url必須為直接可訪問的url,不能攜帶參數。

 [[438958]]

概述

在微信支付中,當用戶支付成功后,微信會把相關支付結果和用戶信息發送給商戶,商戶需要接收處理,并返回應答。接收微信支付異步通知回調地址也是有要求:通知url必須為直接可訪問的url,不能攜帶參數。示例:notify_url:“https://pay.weixin.qq.com/wxpay/pay.action”

在微信支付開發,支付結果通用通知介紹說明頁面→https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_7&index=3。

說明了:支付完成后,微信會把相關支付結果和用戶信息發送給商戶,商戶需要接收處理,并返回應答。

c#方法

微信支付完成后會有一個支付回調頁面,處理支付完成后的事件,V3支付回調的數據形式為XML格式。

1、定義一個model類,處理一般構造函數,用于解析XML對象;

  1. #region  WeiXin APP 
  2.                  // Log.Info(this.GetType().ToString(), "Native pay mode 2 url is producing..."); 
  3.                  WxPayData data = new WxPayData(); 
  4.                  //data.SetValue("attach", model.Dowhere);//附加數據 
  5.                  data.SetValue("body", model.Title);//商品描述 
  6.                  data.SetValue("out_trade_no", model.LocalTransationNo);// WxPayApi.GenerateOutTradeNo());//隨機字符串 
  7.                  data.SetValue("total_fee"Convert.ToInt32(model.Amount * 100));//總金額 
  8.                  data.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss"));//交易起始時間 
  9.                  data.SetValue("time_expire", DateTime.Now.AddMinutes(10).ToString("yyyyMMddHHmmss"));//交易結束時間                                                                              //data.SetValue("goods_tag""goods_tag");//商品標記 
  10.                  data.SetValue("trade_type""APP");//交易類型 
  11.                                                     //data.SetValue("product_id", model.ProductId);//商品ID 
  12.                  WxPayData r = WxPayApi.UnifiedOrder(data);//調用統一下單接口 
  13.                  string prepay_id = r.GetValue("prepay_id").ToString(); 
  14.  
  15.                  WxPayData da2 = new WxPayData(); 
  16.                  da2.SetValue("appid", WxPayConfig.APPID);//公眾賬號ID 
  17.                  da2.SetValue("noncestr", WxPayApi.GenerateNonceStr());//商戶號 
  18.                  da2.SetValue("package""Sign=WXPay");//商品描述 
  19.                  da2.SetValue("partnerid", WxPayConfig.MCHID);// WxPayApi.GenerateOutTradeNo());//隨機字符串 
  20.                  da2.SetValue("prepayid", prepay_id);//總金額 
  21.                  da2.SetValue("timestamp", WxPayApi.GenerateTimeStamp());//交易起始時間 
  22.  
  23.                  #endregion 

2、檢查支付結果中transaction_id是否存在

  1. //https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_7 
  2.  
  3.           WxPayData notifyData = (new Com.WeiXin.Notify(this.HttpContext)).GetNotifyData(); 
  4.  
  5.           //檢查支付結果中transaction_id是否存在 
  6.           if (!notifyData.IsSet("transaction_id")) 
  7.           { 
  8.               //若transaction_id不存在,則立即返回結果給微信支付后臺 
  9.               WxPayData res = new WxPayData(); 
  10.               res.SetValue("return_code""FAIL"); 
  11.               res.SetValue("return_msg""支付結果中微信訂單號不存在"); 
  12.               Log.Error(this.GetType().ToString(), "The Pay result is error : " + res.ToXml()); 
  13.               HttpContext.Response.Write(res.ToXml()); 
  14.               HttpContext.Response.End(); 
  15.           } 
  16.  
  17.           string transaction_id = notifyData.GetValue("transaction_id").ToString(); 

3、查詢訂單,判斷訂單真實性

  1. //查詢訂單,判斷訂單真實性 
  2. if (!QueryOrder(transaction_id)) 
  3.     //若訂單查詢失敗,則立即返回結果給微信支付后臺 
  4.     WxPayData res = new WxPayData(); 
  5.     res.SetValue("return_code""FAIL"); 
  6.     res.SetValue("return_msg""訂單查詢失敗"); 
  7.     Log.Error(this.GetType().ToString(), "Order query failure : " + res.ToXml()); 
  8.     HttpContext.Response.Write(res.ToXml()); 
  9.     HttpContext.Response.End(); 
  10. //查詢訂單成功 
  11. else 
  12.     WxPayData res = new WxPayData(); 
  13.     res.SetValue("return_code""SUCCESS"); 
  14.     res.SetValue("return_msg""OK"); 
  15.     Log.Info(this.GetType().ToString(), "order query success : " + res.ToXml()); 
  16.  
  17.     string trade_no = transaction_id; 
  18.     string order_no = notifyData.GetValue("out_trade_no").ToString();     //獲取訂單號 
  19.     string total_fee = (Convert.ToInt32(notifyData.GetValue("total_fee").ToString()) / 100.0).ToString();       //獲取總金額 
  20.                                                                                                                 //notifyData.GetValue("attach").ToString(); 
  21.     HttpContext.Response.Write(res.ToXml()); 
  22.     HttpContext.Response.End(); 
  23.  
  24.     PaymentBLL pbll = new PaymentBLL(); 
  25.     bool b = pbll.PayCallback(order_no, total_fee, transaction_id); 

4、查詢訂單,業務處理

  1.       //查詢訂單 
  2.         private bool QueryOrder(string transaction_id) 
  3.         { 
  4.             WxPayData req = new WxPayData(); 
  5.             req.SetValue("transaction_id", transaction_id); 
  6.             WxPayData res = WxPayApi.OrderQuery(req); 
  7.             if (res.GetValue("return_code").ToString() == "SUCCESS" && 
  8.                 res.GetValue("result_code").ToString() == "SUCCESS"
  9.             { 
  10.                 return true
  11.             } 
  12.             else 
  13.             { 
  14.                 return false
  15.             } 
  16.         } 
  17.         #endregion 
  18.   
  19. UP技術控 
  20. 江東子弟多才俊,卷土重來未可知。——唐·杜牧 
  21. 447篇原創內容 
  22. 公眾號 

 

責任編輯:武曉燕 來源: UP技術控
相關推薦

2009-08-19 16:40:35

C#回調

2009-08-12 10:11:18

C# 回調函數

2009-08-19 17:10:09

C#回調函數

2009-07-31 16:25:29

C#回調函數API應用

2020-07-20 07:46:01

程序員加簽驗簽

2016-03-04 10:29:51

微信支付源碼

2023-03-10 18:34:31

2015-02-13 10:20:15

微信

2014-02-04 07:59:27

2017-01-04 18:09:23

Android微信支付快速實現

2014-11-20 09:38:40

C#

2011-06-15 11:05:14

C語言回調函數

2015-07-29 14:20:30

微信支付注意事項

2020-08-05 15:04:13

微信支付寶移動應用

2013-11-28 11:15:43

微信支付寶支付戰爭

2021-12-27 16:20:45

鴻蒙HarmonyOS應用

2010-02-04 16:07:39

C++回調函數

2014-03-29 22:42:00

微信公眾平臺開發C#

2009-08-12 15:20:21

C#事件處理

2013-10-25 17:21:07

微信騰訊
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品视频播放 | av在线成人 | 国产一区二区欧美 | 久久久久久久久久久久久九 | 成人aaa视频| 台湾佬成人网 | 91精品国产99 | 99综合网 | 人人澡视频 | 成人av在线播放 | 亚洲一区二区三区视频免费观看 | 一区二区三区视频播放 | 国产精品一区二 | 国产精品成人一区二区 | 麻豆亚洲| 天天插天天狠天天透 | 国产精品视频一二三区 | 五月天激情综合网 | 国产精品久久久久久久久久久久 | 你懂的在线视频播放 | 九九亚洲| 免费高清av | 日韩一区二区久久 | 永久免费在线观看 | 国产婷婷色综合av蜜臀av | 欧美高清hd | 久久亚 | 久久久91精品国产一区二区三区 | 日韩成人在线看 | 久草热线| 男女羞羞视频在线 | 日韩精品一区二区三区中文在线 | 亚洲综合大片69999 | 久久久国产精品入口麻豆 | 欧美精品一区二区三区蜜臀 | 国产日产精品一区二区三区四区 | 国产九九九九 | 999热精品 | 亚洲精品欧美 | 日韩免费高清视频 | 成人h免费观看视频 |