这是开发山东跨境电商订单申报接口时个的示列代码,供大家们参考
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