博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

Posted on 2021-03-15 11:59  kuangood  阅读(544)  评论(0)    收藏  举报

这是开发山东跨境电商订单申报接口时个的示列代码,供大家们参考
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("\n<ds:CanonicalizationMethod Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\"></ds:CanonicalizationMethod>");
        stringBuilder.Append("\n<ds:SignatureMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#rsa-sha1\"></ds:SignatureMethod>");
        stringBuilder.Append("\n<ds:Reference URI=\"\">");
        stringBuilder.Append("\n<ds:Transforms>");
        stringBuilder.Append("\n<ds:Transform Algorithm=\"http://www.w3.org/2000/09/xmldsig#enveloped-signature\"></ds:Transform>");
        stringBuilder.Append("\n</ds:Transforms>");
        stringBuilder.Append("\n<ds:DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\"></ds:DigestMethod>");
        stringBuilder.AppendFormat("\n<ds:DigestValue>{0}</ds:DigestValue>", DigestValue);
        stringBuilder.Append("\n</ds:Reference>");
        stringBuilder.Append("\n</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("\n<ds:SignedInfo>");
        stringBuilder.Append("\n<ds:CanonicalizationMethod Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\"></ds:CanonicalizationMethod>");
        stringBuilder.Append("\n<ds:SignatureMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#rsa-sha1\"></ds:SignatureMethod>");
        stringBuilder.Append("\n<ds:Reference URI=\"\">");
        stringBuilder.Append("\n<ds:Transforms>");
        stringBuilder.Append("\n<ds:Transform Algorithm=\"http://www.w3.org/2000/09/xmldsig#enveloped-signature\"></ds:Transform>");
        stringBuilder.Append("\n</ds:Transforms>");
        stringBuilder.Append("\n<ds:DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\"></ds:DigestMethod>");
        stringBuilder.AppendFormat("\n<ds:DigestValue>{0}</ds:DigestValue>", digestValue);
        stringBuilder.Append("\n</ds:Reference>");
        stringBuilder.Append("\n</ds:SignedInfo>");
        stringBuilder.Append("\n<ds:SignatureValue>");
        stringBuilder.AppendFormat("\n{0}", signatureValue);
        stringBuilder.Append("\n</ds:SignatureValue>");
        stringBuilder.Append("\n<ds:KeyInfo>");
        stringBuilder.AppendFormat("\n<ds:KeyName>{0}</ds:KeyName>", keyName);
        stringBuilder.Append("\n</ds:KeyInfo>");
        stringBuilder.Append("\n</ds:Signature>");
        return stringBuilder.ToString();
    }

	1、跨境通申报助手v1.0 只是个工具 免费为中小企业使用  帐号1001 密码:10011001 
	以上是关于订单加签的一些方法,其他的就不说明了,
	2、有关于提供跨境进出口整套资料包括技术上的对接事项,需要有偿服务,跨境通保税仓储管理系统
	3、跨境电商进口申报,出口申报,对接各物流公司 申报,仓储管理,PDA管理发货,跨境通保税仓储管理系统V2.0 还有农产品食蔬宝配送管理系统
	

            下载地址: http://sdkjt.kjtcn.net/Downloadlist/downloadKJTHelp
            加我QQ :183840232,手机:15557148372,微信号:15557148372