跨境通保税仓储管理系统-跨境电商订单申报加签

这是开发山东跨境电商订单申报接口时个的示列代码,供大家们参考
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
原文地址:https://www.cnblogs.com/kuangood2018/p/14536810.html