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
  • 相关阅读:
    【BZOJ】【1833】【ZJOI2010】count 数字计数
    bzoj2588: Spoj 10628. Count on a tree(树上第k大)(主席树)
    NOIP2017金秋冲刺训练营杯联赛模拟大奖赛第一轮Day2题解
    NOIP2017金秋冲刺训练营杯联赛模拟大奖赛第二轮Day2题解
    51nod 1962 区间计数(单调栈+二分)
    51nod 1486 大大走格子(DP+组合数学)
    bzoj2276: [Poi2011]Temperature(单调队列/堆)
    5028: 小Z的加油店(线段树)
    bzoj2216: [Poi2011]Lightning Conductor(分治决策单调性优化)
    bzoj1057: [ZJOI2007]棋盘制作(悬线法)
  • 原文地址:https://www.cnblogs.com/kuangood2018/p/14536810.html
Copyright © 2011-2022 走看看