C#圆通订单创建接口测试类
class YtoUtil{private static string requestURL = "http://opentestapi.yto.net.cn/service/order_create/v1/"; //请求地址private static string clientId = "TEST"; //客户编码private static string partnerId = "123456"; //商家秘钥private static string type = "online";//订单类型public static void dataRecIni() {string txLogisticID = "LP07082300225709";string logistics_interface = "<RequestOrder>" +"<clientID>TEST</clientID>" +"<logisticProviderID>YTO</logisticProviderID>" +"<customerId>TEST</customerId >" +"<txLogisticID>" + txLogisticID + "</txLogisticID>" +"<tradeNo>2007082300225709</tradeNo>" +"<mailNo>124579546621</mailNo>" +"<totalServiceFee>0.0</totalServiceFee>" +"<codSplitFee>0.0</codSplitFee>" +"<orderType>1</orderType>" +"<serviceType>0</serviceType>" +"<flag>0</flag>" +"<sender>" +"<name>张三</name>" +"<postCode>310013</postCode>" +"<phone>231234134</phone>" +"<mobile>13575745195</mobile>" +"<prov>上海</prov>" +"<city>上海,浦东区</city>" +"<address>科技大厦9层</address>" +"</sender>" +"<receiver>" +"<name>李四</name>" +"<postCode>100000</postCode>" +"<phone>231234134</phone>" +"<prov>北京</prov>" +"<city>北京市、朝阳区</city>" +"<address>科技大厦9层</address>" +"</receiver>" +"<increments>" +"<increment>" +"<type>1</type>" +"<name>到付</name>" +"<money>2.00</money>" +"<remark>到付</remark>" +"<attr>1111</attr>" +"</increment>" +"</increments>" +"<sendStartTime>2005-08-24 08:00:00.0 CST</sendStartTime>" +"<sendEndTime>2005-08-24 12:00:00.0 CST</sendEndTime>" +"<goodsValue>1900</goodsValue>" +"<itemsValue>2000</itemsValue>" +"<items>" +"<item>" +"<itemName>Nokia N73</itemName>" +"<number>2</number>" +"<itemValue>2</itemValue>" +"</item>" +"<item>" +"<itemName>Nokia N72</itemName>" +"<number>1</number>" +"<itemValue>2</itemValue>" +"</item>" +"</items>" +"<insuranceValue>0.0</insuranceValue>" +"<special>0</special>" +"<remark>易碎品</remark>" +"</RequestOrder>";string data_digest = encode(base64(orderMD5(logistics_interface + partnerId)));//先MD5,再Base64,进行URL编码logistics_interface = encode(logistics_interface);string result = createOrder(logistics_interface, data_digest, type, clientId, requestURL);}//url编码public static string encode(string str){return HttpUtility.UrlEncode(str);}/*** MD5加密*/private static byte[] orderMD5(string str){using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider()){byte[] date = md5.ComputeHash(Encoding.UTF8.GetBytes(str));return date;}}/*** base64编码*/private static string base64(byte[] str){string result = null;result = Convert.ToBase64String(str);return result;}/*** * 订单请求* */public static string createOrder(string logistics_interface, string data_digest, string type, string clientId, string URL){string result = null;StringBuilder sb = new StringBuilder();sb.Append("logistics_interface=" + logistics_interface).Append("&").Append("data_digest=" + data_digest).Append("&").Append("type=" + type + "&clientId=" + clientId);HttpWebRequest req = (HttpWebRequest)WebRequest.Create(URL);req.Method = "POST";req.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";byte[] data = Encoding.UTF8.GetBytes(sb.ToString());req.ContentLength = data.Length;using (Stream reqStream = req.GetRequestStream()){reqStream.WriteTimeout = 5000;reqStream.Write(data, 0, data.Length);reqStream.Close();}HttpWebResponse resp = (HttpWebResponse)req.GetResponse();Stream stream = resp.GetResponseStream();using (StreamReader streamReader = new StreamReader(stream, Encoding.UTF8)){result = streamReader.ReadToEnd();}return result;}}
C#圆通订单创建接口测试类相关推荐
- SAP 物料订单创建、下达、报工、收货与投料(ABAP代码)
对主体订单下的某一类物料通过MRP控制者的判断,可以对此类物料进行自动创建生产订单,自动下达,报工.收货,最后对主体订单投料. 1.新增加一个MRP控制者:泵送钢管类物料的MRP控制者必须设置为168 ...
- 37 MM配置-采购-采购订单-采购订单审批-编辑类
业务背景:定义采购订单审批类 事务码:CL02 SPRO路径:物料管理->采购->采购订单->采购订单的下达过程->编辑类 第1步,SPRO进入 第2步,创建审批类 配置完成! ...
- java微信支付v3系列——3.订单创建准备操作
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- SpringBoot 框架中 使用Spring Aop 、创建注解、创建枚举类 使用过程记录
1.开始 在Springboot框架中引入AOP <dependency><groupId>org.springframework.boot</groupId>&l ...
- SAP MM ML81N为采购订单创建服务接收单,报错- No matching PO items selected -
SAP MM ML81N为采购订单创建服务接收单,报错- No matching PO items selected - SAP里的服务采购流程跟有形的实物采购流程并不相同.除了在采购单据上的差异以外 ...
- 使用tolua++编译pkg,从而创建自定义类让Lua脚本使用
2019独角兽企业重金招聘Python工程师标准>>> 在Lua第三篇中介绍了,如何在cocos2dx中使用Lua创建自定义类供Lua脚本调用使用,当时出于Himi对Lua研究不够深 ...
- python动态创建类_Python中通过参数动态创建扩展类(class)
class Bar: def super_cool_function(self): print("Cool") 1.利用Python闭包动态扩展类 通过在内部创建并从函数返回它来动 ...
- sqlalchemy根据表名动态创建model类
sqlalchemy根据表名动态创建model类 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/J_Object/article/details/8 ...
- 【Groovy】MOP 元对象协议与元编程 ( Expando 动态类 | 创建动态类 | 为动态类增加字段和方法 )
文章目录 一.Expando 动态类简介 二.动态类创建 三.为动态类增加字段和方法 四.完整代码示例 一.Expando 动态类简介 Groovy 运行时 , 可以动态地创建一个类 , 该类称为 & ...
- 【Binder 机制】AIDL 分析 ( 创建 AIDL 文件 | 创建 Parcelable 类 | AIDL 中使用 Parcelable 类 | 编译工程生成 AIDL 对应的Java源文件 )
文章目录 一.创建 AIDL 文件 1.创建 AIDL 目录 2.创建 AIDL 文件 3.创建 Parcelable 类 4.AIDL 目录下声明 Parcelable 类 5.AIDL 中使用 P ...
最新文章
- webSocket详解
- Invalid syntax for function signature in TLD
- 用了这个 IDE 插件,5分钟解决前后端联调!
- html页面手机端console,GitHub - MobileHTML5/vConsole: 一个针对手机网页的前端 console 调试面板。...
- logger 参数列表过长_[源码级解析] 巧妙解决并深度分析Linux下rm命令提示参数列表过长的问题...
- 前端_网页编程 节流
- 数据3分钟丨MariaDB将借壳上市;前融云CTO杨攀加入涛思数据;​Elastic 8.0正式发布...
- ie系列浏览器_IE浏览器换Logo,真担心你上网找不到图标
- 零基础带你学习MySQL—备份恢复数据库(三)
- .NetCore中EFCore for MySql整理(二)
- Python 语言程序设计(5-2)七段数码管程序编写设计
- LeetCode160相交链表
- C# 调用C++DLL声明 常规参数/结构体/指针/数组
- 如何理解冲突域和广播域?(转)
- Encoder-Decoder综述理解(推荐)
- 【无标题】VisualStudio2022断点调试
- 用Node.js申请缓存buffer报DEP0005错误的解决方法
- 降甘油三脂 的中药/中成药
- serverlet快速入门
- DSX-5000校准的意义?