• linq to xml运用示例


    代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Http;
    using XFK.LYTravel.Common.helper;
    using XFK.LYTravel.Infrastructure;
    using SFast;
    using System.Xml.Linq;
    using XFK.LYTravel.Common;
    
    namespace XFK.LYTravel.LYTravelApi.Areas.AppMain.Controllers
    {
        public class WXUnifiedOrderPayController : ApiController
        {
            public ResponseBase<WXUnifiedPayResp> Post(WXUnifiedPayReq req)
            {
                AppMainLogHelper.WriteLog("-----进入AppMain-WXUnifiedOrderPay接口!(/api/AppMain/WXUnifiedOrderPay)------");
                AppMainLogHelper.WriteLog("入参:" + req._ToJsonStr());
                ResponseBase<WXUnifiedPayResp> result = new ResponseBase<WXUnifiedPayResp>();
                XElement xe = new XElement("xml",
                    new XElement("appid", req.appid),
                    new XElement("attach", req.attach),
                    new XElement("body", req.body),
                    new XElement("mch_id", req.mch_id),
                    new XElement("nonce_str", req.nonce_str),
                    new XElement("notify_url", req.notify_url),
                    new XElement("openid", req.openid),
                    new XElement("out_trade_no", req.out_trade_no),
                    new XElement("spbill_create_ip", req.spbill_create_ip),
                    new XElement("total_fee", req.total_fee),
                    new XElement("trade_type", req.trade_type),
                    new XElement("scene_info", req.scene_info),
                    new XElement("sign", req.sign)
                    );
                string xmlStr = xe.ToString();
                string url = "https://api.mch.weixin.qq.com/pay/unifiedorder";
                AppMainLogHelper.WriteLog(string.Format("发送微信统一下单接口,地址:{0},参数:{1}", url, xmlStr));
                string strResp = TrainTicketAPI.PostWebRequest(url, xmlStr);
                AppMainLogHelper.WriteLog("返回数据:" + strResp);
                XElement xeRet = XElement.Parse(@strResp);
                WXUnifiedPayResp resp = new WXUnifiedPayResp();
                resp.return_code = xeRet.Descendants("return_code").First().Value;
                resp.return_msg = xeRet.Descendants("return_msg").First().Value;
                if (resp.return_code == "SUCCESS")
                {
                    resp.appid = xeRet.Descendants("appid").First().Value;
                    resp.mch_id = xeRet.Descendants("mch_id").First().Value;
                    resp.nonce_str = xeRet.Descendants("nonce_str").First().Value;
                    resp.sign = xeRet.Descendants("sign").First().Value;
                    resp.result_code = xeRet.Descendants("result_code").First().Value;
                    if (resp.result_code == "SUCCESS")
                    {
                        resp.prepay_id = xeRet.Descendants("prepay_id").First().Value;
                        resp.trade_type = xeRet.Descendants("trade_type").First().Value;
                        resp.mweb_url = xeRet.Descendants("mweb_url").First().Value;
                    }
                    result.resultCode = "200";
                    result.IsSuccess = true;
                    result.Message = resp.return_msg;
                    result.ResultData = resp;
                }
                else
                {
                    result.resultCode = "201";
                    result.IsSuccess = false;
                    result.Message = resp.return_msg;
                    result.ResultData = null;
                }
    
                return result;
            }
    
        }
    
        public class WXUnifiedPayReq
        {
            public string appid { get; set; }
            public string attach { get; set; }
            public string body { get; set; }
            public string mch_id { get; set; }
            public string nonce_str { get; set; }
            public string notify_url { get; set; }
            public string openid { get; set; }
            public string out_trade_no { get; set; }
            public string spbill_create_ip { get; set; }
            public string total_fee { get; set; }
            public string trade_type { get; set; }
            public string scene_info { get; set; }
            public string sign { get; set; }
        }
    
        public class WXUnifiedPayResp
        {
            public string return_code { get; set; }
            public string return_msg { get; set; }
            public string appid { get; set; }
            public string mch_id { get; set; }
            public string nonce_str { get; set; }
            public string sign { get; set; }
            public string result_code { get; set; }
            public string prepay_id { get; set; }
            public string trade_type { get; set; }
            public string mweb_url { get; set; }
        }
    }
    

     参考:
    http://skybirdzw.blog.163.com/blog/static/7257062620140244456725/
    http://skybirdzw.blog.163.com/blog/static/72570626201402445651865/

  • 相关阅读:
    SVN如何切换用户对代码进行操作
    SVN更新的时候报断言失败解决办法
    根据身份证号判断性别
    4.UiCollection API 详细介绍
    1.UiDevice API 详细介绍
    安卓常见反破解方式
    腾讯应用加固的脱壳分析和修复
    1.Android JUnit Runner(使用AndroidStudio)
    Java图形化界面设计——布局管理器之null布局(空布局)
    Java图形化界面设计——布局管理器之CardLayout(卡片布局)
  • 原文地址:https://www.cnblogs.com/zhaow/p/8868232.html
Copyright © 2020-2023  润新知