[HttpGet]
public ActionResult WoSign()
{

// System.IO.FileStream fs = System.IO.File.OpenRead(System.Web.HttpContext.Current.Server.MapPath("~/Content/pp1.png"));//传文件的路径即可
// System.IO.BinaryReader br = new BinaryReader(fs);
// byte[] bt = br.ReadBytes(Convert.ToInt32(fs.Length));
// string base64String1 = Convert.ToBase64String(bt);
// br.Close();
// fs.Close();

var company= Convert.ToBase64String(System.IO.File.ReadAllBytes(System.Web.HttpContext.Current.Server.MapPath("~/Content/pp1.png")));
var user = Convert.ToBase64String(System.IO.File.ReadAllBytes(System.Web.HttpContext.Current.Server.MapPath("~/Content/pp2.png")));

var obj = new
{
tokenid = "0995d18b-6cf9-453247d-8a31-478c7e020828",
actiontype = "CreateSignOrder",
tempid = "956eb3a2-3ea3-4749-a33e-65767519eab4",
subject = "借款服务协议",
password = "",
filebase = "",
fileformat = "",
orderNumber = "324233243243225443632344234",
signerlist = new object[]

{
new {signType=1,orgName="融信城(上海)电子商务有限公司",orgNo="9134310109342191070G",stampbase="",pic="111",otherpic="22"},
new {signType = 2, userName = "李帅", userNo = "41282419963401083571",stampbase=user, pic = "41282413499601083571", otherpic = "345"}
}
};

var str = JsonConvert.SerializeObject(obj);
var result = PostMoths("https://docapitest.wosign.com/", str);

//var obj = new
//{
// tokenid = "0995d18b-6cf9-457d-8a31-478c7e020828",
// actiontype = "PushSignedDoc",
// status = 1,
// errorcode = 0,
// extendData = new
// {
// signid = "75829991-8076-4bb5-a0fb-55c5282f47ec",
// orderNumber = "44035241526352145"
// }

//};

//var str = JsonConvert.SerializeObject(obj);
//var result = PostMoths("https://docapitest.wosign.com/", str);

return Content(result);

}

[HttpPost]
public void WoSignPushSignedDoc()
{
Stream postData = Request.InputStream;
StreamReader sRead = new StreamReader(postData);
string postContent = sRead.ReadToEnd();
sRead.Close();

FileStream fs = new FileStream(System.Web.HttpContext.Current.Server.MapPath("~/Content/cc.txt"), FileMode.Create);

byte[] data = System.Text.Encoding.Default.GetBytes(postContent);

fs.Write(data, 0, data.Length);

fs.Flush();
fs.Close();

}

public static string PostMoths(string url, string param)
{
string strURL = url;
System.Net.HttpWebRequest request;
request = (System.Net.HttpWebRequest)WebRequest.Create(strURL);
X509Certificate cer = X509Certificate.CreateFromCertFile(System.Web.HttpContext.Current.Server.MapPath("~/App_Data/RXCWoSign.cer"));
request.ClientCertificates.Add(cer);
request.Method = "POST";
request.ContentType = "application/json;charset=UTF-8";
string paraUrlCoded = param;
byte[] payload;
payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);
request.ContentLength = payload.Length;
Stream writer = request.GetRequestStream();
writer.Write(payload, 0, payload.Length);
writer.Close();
System.Net.HttpWebResponse response;
response = (System.Net.HttpWebResponse)request.GetResponse();
System.IO.Stream s;
s = response.GetResponseStream();
string StrDate = "";
string strValue = "";
StreamReader Reader = new StreamReader(s, Encoding.UTF8);
while ((StrDate = Reader.ReadLine()) != null)
{
strValue += StrDate + "\r\n";
}
return strValue;
}

public void test()
{
string base64BinaryStr = "";

byte[] sPDFDecoded = Convert.FromBase64String(base64BinaryStr);

BinaryWriter writer = new BinaryWriter(System.IO.File.Open(@"F:5.pdf", FileMode.CreateNew));
writer.Write(sPDFDecoded);
string s = Encoding.UTF8.GetString(sPDFDecoded);

}

WOSign API的更多相关文章

  1. 添加WoSign根证书到JDK

    由于某些“众所周知”的原因,Azure中国版使用了国内的WoSign证书——和臭名昭著的CNNIC有的一拼.Apple是不信任WoSign证书的,这也是为什么用Mac OS中访问www.azure.c ...

  2. 干货来袭-整套完整安全的API接口解决方案

    在各种手机APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优 在以前WEB API概念没有很普及的时候,都采用自已定义的接口和结构,对 ...

  3. 12306官方火车票Api接口

    2017,现在已进入春运期间,真的是一票难求,深有体会.各种购票抢票软件应运而生,也有购买加速包提高抢票几率,可以理解为变相的黄牛.对于技术人员,虽然写一个抢票软件还是比较难的,但是还是简单看看123 ...

  4. 几个有趣的WEB设备API(二)

    浏览器和设备之间还有很多有趣的接口, 1.屏幕朝向接口 浏览器有两种方法来监听屏幕朝向,看是横屏还是竖屏. (1)使用css媒体查询的方法 /* 竖屏 */ @media screen and (or ...

  5. html5 canvas常用api总结(三)--图像变换API

    canvas的图像变换api,可以帮助我们更加方便的绘画出一些酷炫的效果,也可以用来制作动画.接下来将总结一下canvas的变换方法,文末有一个例子来更加深刻的了解和利用这几个api. 1.画布旋转a ...

  6. JavaScript 对数据处理的5个API

    JavaScript对数据处理包括向上取整.向下取整.四舍五入.固定精度和固定长度5种方式,分别对应ceil,floor,round,toFixed,toPrecision等5个API,本文将对这5个 ...

  7. ES5对Array增强的9个API

    为了更方便的对Array进行操作,ES5规范在Array的原型上新增了9个方法,分别是forEach.filter.map.reduce.reduceRight.some.every.indexOf ...

  8. javascript的api设计原则

    前言 本篇博文来自一次公司内部的前端分享,从多个方面讨论了在设计接口时遵循的原则,总共包含了七个大块.系卤煮自己总结的一些经验和教训.本篇博文同时也参考了其他一些文章,相关地址会在后面贴出来.很难做到 ...

  9. 一百元的智能家居——Asp.Net Mvc Api+讯飞语音+Android+Arduino

    大半夜的,先说些废话提提神 如今智能家居已经不再停留在概念阶段,高大上的科技公司都已经推出了自己的部分或全套的智能家居解决方案,不过就目前的现状而言,大多还停留在展厅阶段,还没有广泛的推广起来,有人说 ...

随机推荐

  1. SSM实现图片上传管理操作

    Spring MVC 实现文件上传 时序图 利用 Spring MVC 实现文件上传功能,离不开对 MultipartResolver 的设置.MultipartResolver 这个类,你可以将其视 ...

  2. Reddit: 只有独生子女才明白的事

    duhvorced: 对我来说,恋爱成了件异常艰难的事. 我一直很羡慕有兄弟姐妹的人,特别是有异性兄弟姐妹的.他们能够在成长过程中明白异性对身体.友情的看法,知道他们如何处理不安全感,如何应对同龄人之 ...

  3. Oracle中常用的命令,随着学习进度总结

    原创作品,欢迎转载,转载请在文章显眼位置注明出处:https://www.cnblogs.com/sunshine5683/p/10016569.html 开始之前先注意:在linux中切换到sqlp ...

  4. hdu 2412 Party at Hali-Bula 经典树形DP

    Party at Hali-Bula Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  5. Q:java中的泛型数组

     对于java,其是不支持直接创建泛型数组的.当采用如下的方式去创建一个泛型数组时,其会出现错误,编译无法通过的情况. package other.jdk1_5; /** * 该类用于演示泛型数组的创 ...

  6. BZOJ4659:lcm

    传送门 题目所给的不合法的条件可以转化为 \[\exists p,p^2|gcd(a,b) \Leftrightarrow \mu(gcd(a,b))\ne 0\] 那么 \[ans=\sum_{a= ...

  7. MongoDB 安装成为Windows服务

    使用以下命令将MongoDB安装成为Windows服务. mongod --logpath d:\data\logs.txt --dbpath d:\data --directoryperdb --s ...

  8. Eclipse 分屏显示同一个代码文件

    描述: 今天在使用Eclipse开发的时候不知按错哪个键,出现编辑框分屏显示同一个代码,由于之前没有使用过这一功能,所以就去查了一下,原来是Eclipse的分屏功能. 快捷键: 方式一:Window ...

  9. Datatables跳转到指定页

    因为项目用到Datatables发现在分页特别多时无法跳转到指定页,自己动手增加了#Datatables 跳转到指定页#功能,实现代码如下: table = $('#user-table').data ...

  10. C#--动态加载DLL,通过反射调用参数,方法,窗体

    一些文章: 反射插件插件 http://bbs.csdn.net/topics/391950257?page=1 反射窗体 http://www.sufeinet.com/thread-2984-1- ...