WOSign API
[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的更多相关文章
- 添加WoSign根证书到JDK
由于某些“众所周知”的原因,Azure中国版使用了国内的WoSign证书——和臭名昭著的CNNIC有的一拼.Apple是不信任WoSign证书的,这也是为什么用Mac OS中访问www.azure.c ...
- 干货来袭-整套完整安全的API接口解决方案
在各种手机APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优 在以前WEB API概念没有很普及的时候,都采用自已定义的接口和结构,对 ...
- 12306官方火车票Api接口
2017,现在已进入春运期间,真的是一票难求,深有体会.各种购票抢票软件应运而生,也有购买加速包提高抢票几率,可以理解为变相的黄牛.对于技术人员,虽然写一个抢票软件还是比较难的,但是还是简单看看123 ...
- 几个有趣的WEB设备API(二)
浏览器和设备之间还有很多有趣的接口, 1.屏幕朝向接口 浏览器有两种方法来监听屏幕朝向,看是横屏还是竖屏. (1)使用css媒体查询的方法 /* 竖屏 */ @media screen and (or ...
- html5 canvas常用api总结(三)--图像变换API
canvas的图像变换api,可以帮助我们更加方便的绘画出一些酷炫的效果,也可以用来制作动画.接下来将总结一下canvas的变换方法,文末有一个例子来更加深刻的了解和利用这几个api. 1.画布旋转a ...
- JavaScript 对数据处理的5个API
JavaScript对数据处理包括向上取整.向下取整.四舍五入.固定精度和固定长度5种方式,分别对应ceil,floor,round,toFixed,toPrecision等5个API,本文将对这5个 ...
- ES5对Array增强的9个API
为了更方便的对Array进行操作,ES5规范在Array的原型上新增了9个方法,分别是forEach.filter.map.reduce.reduceRight.some.every.indexOf ...
- javascript的api设计原则
前言 本篇博文来自一次公司内部的前端分享,从多个方面讨论了在设计接口时遵循的原则,总共包含了七个大块.系卤煮自己总结的一些经验和教训.本篇博文同时也参考了其他一些文章,相关地址会在后面贴出来.很难做到 ...
- 一百元的智能家居——Asp.Net Mvc Api+讯飞语音+Android+Arduino
大半夜的,先说些废话提提神 如今智能家居已经不再停留在概念阶段,高大上的科技公司都已经推出了自己的部分或全套的智能家居解决方案,不过就目前的现状而言,大多还停留在展厅阶段,还没有广泛的推广起来,有人说 ...
随机推荐
- vmware创建centos虚拟机
下载centos 安装之前你需要下载centos镜像:http://mirrors.aliyun.com/ 创建虚拟机 如果还没有安装vmware请参考:https://www.cnblogs.com ...
- MapReduce详解和WordCount模拟
最早接触大数据,常萦绕耳边的一个词「MapReduce」.它到底是什么,能做什么,原理又是什么?且听下文讲解. 是什么 MapReduce 即是一个编程模型,又是一个计算框架,它充分采用了分治的思想, ...
- grpc的数据包监控
CommView是一个专门为网络管理员,安全专家,网络程序员,以及任何想要全面了解一台个人电脑或一个网段中的网络通信量的用户设计的强大的网络监控器和分析器,不过它支持Win系统. 我这里用的 Comm ...
- 记录一次使用terminal进行git管理与提交到Github的过程
1.环境的构建: 使用Mac系统自带的Git进行版本管理存在,Git是系统的Xcode集成的 查看版本的命令: $ git --version git version (Apple Git-) 查看g ...
- OpenStack IceHouse 部署 - 3 - 控制节点部署
Mysql部署配置 安装 安装mysql,mysql的python绑定 apt-get install mysql-server 安装过程中会要求设定mysql的root账户的密码,这里假定设为my ...
- BZOJ5372: PKUSC2018神仙的游戏
传送门 Sol 自己还是太 \(naive\) 了,上来就构造多项式和通配符直接匹配,然后遇到 \(border\) 相交的时候就 \(gg\) 了 神仙的游戏蒟蒻还是玩不来 一个小小的性质: 存在长 ...
- 【JavaScript】闭包应用之数据缓存
最近的开发中的许多事件会被频繁的触发,由于没有做缓存的处理,每次事件触发都会后台调用一样的数据.这几天我突然意识到自己的代码有很大的优化空间,继而想起了闭包可以有缓存的功能,于是乎便对其进行了深入的研 ...
- MUI框架-10-MUI 数据交互-跳转详情页面
MUI框架-10-MUI 数据交互-跳转详情页面 上一篇介绍了如何实现数据交互,给别人的 API 发送 ajax 请求,我们得到数据,再使用 art-template 模板引擎拼接 HTML,最终实现 ...
- 对WebSocket技术的学习与探索(一)
WebSocket 简要介绍 WebSocket protocol 是HTML5一种新的协议. 它实现了浏览器与服务器全双工通信(full-duple). 一开始的握手需要借助HTTP请求完成. We ...
- Appium元素定位(uiautomatorviewer)
一.uiautomatorviewer元素定位 1.adroid-sdk的安装目录tools下有1个自带的工具uiautomatorviewer,打开后,如下所示: 点击后,如图所示: 步骤: a.链 ...