zoukankan      html  css  js  c++  java
  • 跨境通保税仓储管理系统-跨境电商订单申报加签

    这是开发山东跨境电商订单申报接口时个的示列代码,供大家们参考
    1、关于跨境电商订单 申报加签给出点加签示例

    	/// <summary>
        ///节点签名 DigestValue
        /// </summary>
        /// <param name="sourceDoc"></param>
        /// <returns></returns>
        public static string GetDigestValue(XmlDocument sourceDoc)
        {
            RSACryptoServiceProvider signingKey = new RSACryptoServiceProvider(new CspParameters
            {
                KeyContainerName = "XML_DSIG_RSA_KEY"
            });
            SignedXml signedXml = new SignedXml(sourceDoc);
            signedXml.SigningKey = signingKey;
            new KeyInfo();
            Reference reference = new Reference();
            reference.Uri = "";
            XmlDsigEnvelopedSignatureTransform transform = new XmlDsigEnvelopedSignatureTransform();
            reference.AddTransform(transform);
            signedXml.AddReference(reference);
            signedXml.ComputeSignature();
            XmlElement xml = signedXml.GetXml();
            string result = "";
            XmlNodeList elementsByTagName = xml.GetElementsByTagName("DigestValue");
            if (elementsByTagName.Count > 0)
            {
                result = elementsByTagName[0].InnerText;
            }
            return result;
        }
    	
    	 /// <summary>
        /// 设置证书节点
        /// </summary>
        /// <param name="xmlElement"></param>
        /// <param name="prefix"></param>
        /// <returns></returns>
        private static XmlNode SetPrefix(XmlNode xmlElement, string prefix)
        {
            xmlElement.Prefix = prefix;
            if (xmlElement.HasChildNodes)
            {
                foreach (object obj in xmlElement.ChildNodes)
                {
                    XmlNode xmlNode = (XmlNode)obj;
                    if (xmlNode.NodeType == XmlNodeType.Element)
                    {
                        SignatureHelper.SetPrefix((XmlElement)xmlNode, prefix);
                    }
                }
            }
            return xmlElement;
        }
    	
    	 /// <summary>
        /// 签名报文节点
        /// </summary>
        /// <param name="DigestValue"></param>
        /// <returns></returns>
        private static string CreateSignInfoFragmentString(string DigestValue)
        {
            StringBuilder stringBuilder = new StringBuilder();
            stringBuilder.Append("<ds:SignedInfo xmlns:ceb="http://www.chinaport.gov.cn/ceb" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">");
            stringBuilder.Append("
    <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></ds:CanonicalizationMethod>");
            stringBuilder.Append("
    <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></ds:SignatureMethod>");
            stringBuilder.Append("
    <ds:Reference URI="">");
            stringBuilder.Append("
    <ds:Transforms>");
            stringBuilder.Append("
    <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></ds:Transform>");
            stringBuilder.Append("
    </ds:Transforms>");
            stringBuilder.Append("
    <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod>");
            stringBuilder.AppendFormat("
    <ds:DigestValue>{0}</ds:DigestValue>", DigestValue);
            stringBuilder.Append("
    </ds:Reference>");
            stringBuilder.Append("
    </ds:SignedInfo>");
            return stringBuilder.ToString();
        }
    	
    	        /// <summary>
        /// 组装报文
        /// </summary>
        /// <param name="digestValue"></param>
        /// <param name="signatureValue"></param>
        /// <param name="keyName"></param>
        /// <returns></returns>
        public static string CreateSignatureNodeString(string digestValue, string signatureValue, string keyName)
        {
            StringBuilder stringBuilder = new StringBuilder();
            stringBuilder.Append("<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">");
            stringBuilder.Append("
    <ds:SignedInfo>");
            stringBuilder.Append("
    <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></ds:CanonicalizationMethod>");
            stringBuilder.Append("
    <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></ds:SignatureMethod>");
            stringBuilder.Append("
    <ds:Reference URI="">");
            stringBuilder.Append("
    <ds:Transforms>");
            stringBuilder.Append("
    <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></ds:Transform>");
            stringBuilder.Append("
    </ds:Transforms>");
            stringBuilder.Append("
    <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod>");
            stringBuilder.AppendFormat("
    <ds:DigestValue>{0}</ds:DigestValue>", digestValue);
            stringBuilder.Append("
    </ds:Reference>");
            stringBuilder.Append("
    </ds:SignedInfo>");
            stringBuilder.Append("
    <ds:SignatureValue>");
            stringBuilder.AppendFormat("
    {0}", signatureValue);
            stringBuilder.Append("
    </ds:SignatureValue>");
            stringBuilder.Append("
    <ds:KeyInfo>");
            stringBuilder.AppendFormat("
    <ds:KeyName>{0}</ds:KeyName>", keyName);
            stringBuilder.Append("
    </ds:KeyInfo>");
            stringBuilder.Append("
    </ds:Signature>");
            return stringBuilder.ToString();
        }
    
    	
    	以上是关于订单加签的一些方法,其他的就不说明了,
    	2、有关于提供跨境进出口整套资料包括技术上的对接事项,需要有偿服务,跨境通保税仓储管理系统
    	3、跨境电商进口申报,出口申报,对接各物流公司 申报,仓储管理,PDA管理发货,跨境通保税仓储管理系统V2.0 还有农产品食蔬宝配送管理系统
    

    	加我QQ :183840232,手机:15557148372,微信号:15557148372
  • 相关阅读:
    使用C++调用并部署pytorch模型
    相位展开(phase unwrapping)算法研究与实践
    【计算机视觉】图像配准(Image Registration)
    读书笔记 - 《数字图像处理》(更新中...)
    ssh框架复习
    SVN 版本控制
    Spring的jdbcTemplate 与原始jdbc 整合c3p0的DBUtils 及Hibernate 对比 Spring配置文件生成约束的菜单方法
    JDK 动态代理 讨债实例
    Spring 框架配置web.xml 整合web struts
    Spring整合JUnit spring静态对象属性的注入
  • 原文地址:https://www.cnblogs.com/kuangood2018/p/14536810.html
Copyright © 2011-2022 走看看