代码:

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/

linq to xml运用示例的更多相关文章

  1. C# linq to xml 简单示例

    data.xml <?xml version="1.0" encoding="utf-8" ?> <Data> <Products ...

  2. LINQ for XML简单示例

    LINQ,语言集成查询(Language Integrated Query)是一组用于c#和Visual Basic语言的扩展.它允许开发人员以与查询数据库相同的方式操作内存数据.从技术角度而言,LI ...

  3. LINQ系列:LINQ to XML类

    LINQ to XML由System.Xml.Linq namespace实现,该namespace包含处理XML时用到的所有类.在使用LINQ to XML时需要添加System.Xml.Linq. ...

  4. LINQ系列:LINQ to XML查询

    1. 读取XML文件 XDocument和XElement类都提供了导入XML文件的Load()方法,可以读取XML文件的内容,并转换为XDocument或XElement类的实例. 示例XML文件: ...

  5. [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界

    本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...

  6. LINQ to XML 编程基础

    1.LINQ to XML类 以下的代码演示了如何使用LINQ to XML来快速创建一个xml: 隐藏行号 复制代码 ?创建 XML public static void CreateDocumen ...

  7. Linq学习笔记---Linq to Xml操作

    LINQ to XML的成员, 属性列表: 属性 说明 Document 获取此 XObject 的 XDocument  EmptySequence  获取空的元素集合  FirstAttribut ...

  8. C#学习之Linq to Xml

    前言 我相信很多从事.NET开发的,在.NET 3.5之前操作XML会比较麻烦,但是在此之后出现了Linq to Xml,而今天的主人公就是Linq to Xml,废话不多说,直接进入主题. 题外:最 ...

  9. C#中的Linq to Xml详解

    这篇文章主要介绍了C#中的Linq to Xml详解,本文给出转换步骤以及大量实例,讲解了生成xml.查询并修改xml.监听xml事件.处理xml流等内容,需要的朋友可以参考下 一.生成Xml 为了能 ...

随机推荐

  1. 浅谈WebView在新窗口浏览网页(setSupportMultipleWindows()与onCreateWindow()关系)

    一,写在前面 我们平常使用电脑浏览器浏览网页可能会有三种方式: 1.新窗口 2.当前窗口种的新选项卡 3.当前选项卡或者窗口 我们知道在电脑系统中同一时间可以开启多个相同的进程,就像你可以同时登陆2个 ...

  2. [转]Nginx实现高并发的原理

    Nginx 首先要明白,Nginx 采用的是多进程(单线程) & 多路IO复用模型.使用了 I/O 多路复用技术的 Nginx,就成了”并发事件驱动“的服务器. 异步非阻塞(AIO)的详解ht ...

  3. Horovod 通信策略

    因为最近的工作要和Horovod打交道,所以分析了Horovod的源码.在这里记一笔. Horovod有几个亮点,第一,它不依托于某个框架,自己通过MPI建立了一套分布式系统,完成了allreduce ...

  4. nginx配置, 启动命令, 反向代理配置

    2014年1月3日 13:52:07 喜欢这样的风格,干货 http://huoding.com/2013/10/23/290 -----------------下边是我自己的经验(windows)- ...

  5. CreationPolicy 枚举的值

    根据[CreationPolicy]枚举的值,我们很容易就能看出其代表的意义,[Shared]代表共享部件,即单例,所有的导入都使用一个实例,如果组合引擎中没有该实例,则会创建,一旦有了,就不会再创建 ...

  6. Swagger 介绍

    简介Swagger 是最流行的 API 开发工具,它遵循 OpenAPI Specification(OpenAPI 规范,也简称 OAS).Swagger 可以贯穿于整个 API 生态,如 API ...

  7. Java内部类(5):应用例

    例1-闭包(Closure) 闭包是一个可调用的对象(通过Callback),它记录了一些信息,这些信息来自于创建它的作用域 interface Incrementable { void increm ...

  8. vue项目windowServer nginx下部署

    https://www.cnblogs.com/jiangwangxiang/p/8481661.html nginx下载地址 http://nginx.org/en/download.html 下载 ...

  9. Junit单元测试学习

    一.首先选择学习工具是IDEA 1>官网下载IDEA 1:官网地址IntelliJ IDEA,官网上对于不同的操作系统(windows,macOS,Linux)都有两个版本可供下载| 其中蓝色下 ...

  10. 连载二:RobotFramework+Svn+Jenkins集成测试

    使用SVN和Jenkins完成脚本的持续集成测试 目标: 1)使用svn管理脚本: 2)使用jenkins执行脚本: 3)在jenkins中配置svn自动获取最新的脚本执行: 步骤: (1)安装Jen ...