|
|
using System;
|
|
|
using System.Text;
|
|
|
using BWP.ABCClient.Businesses.Type;
|
|
|
using NUnit.Framework;
|
|
|
|
|
|
namespace BWP.ABCClient
|
|
|
{
|
|
|
[TestFixture]
|
|
|
public class RSAServiceTest
|
|
|
{
|
|
|
[SetUp]
|
|
|
public void Setup()
|
|
|
{
|
|
|
new CertManager().ClearAll();
|
|
|
}
|
|
|
|
|
|
[Test]
|
|
|
public void Sign()
|
|
|
{
|
|
|
string msg = "<Merchant><ECMerchantType>B2C</ECMerchantType><MerchantID>103452083980409</MerchantID></Merchant><TrxRequest><TrxType>PayReq</TrxType><Order><OrderNo>634333823922218745</OrderNo><OrderAmount>254011</OrderAmount><OrderDesc></OrderDesc><OrderDate>2011/02/15</OrderDate><OrderTime>16:02:29</OrderTime><OrderURL>http://119.167.225.52/B2/InternetSale/Pub/B2CReceive.aspx?id=10821</OrderURL><OrderItems></OrderItems></Order><ProductType>2</ProductType><PaymentType>1</PaymentType><NotifyType>1</NotifyType><ResultNotifyURL>http://119.167.225.52/B2/InternetSale/Pub/B2CReceive.aspx</ResultNotifyURL><MerchantRemarks></MerchantRemarks><PaymentLinkType>1</PaymentLinkType></TrxRequest>";
|
|
|
string sign = "yGt5aaDrHmWBFb5Lk5WZlLmpuJXe4B25/t4FJzvQlAeKA+cqegiddcpfjGbv3AmspoRqZYNTEfnyLSOjZ8iz9L1U5nl415CzNml2uTLx1aiX4SpHSQASlu6fGqgO2yl2PrABslo+/njsy1tkzwFGm+y1gpjPNykkOWpaYyUjnfw=";
|
|
|
var certManager = new CertManager();
|
|
|
certManager.SetupPfx("Certs/asC.pfx", "14814622");
|
|
|
var signedMsg = RSAService.Sign(msg, "103452083980419");
|
|
|
Console.WriteLine(signedMsg);
|
|
|
Assert.AreEqual(sign, signedMsg);
|
|
|
}
|
|
|
|
|
|
[Test]
|
|
|
public void Verify()
|
|
|
{
|
|
|
string returnMsg = "<Merchant><ECMerchantType>B2C</ECMerchantType><MerchantID>103452083980409</MerchantID></Merchant><TrxResponse><ReturnCode>0000</ReturnCode><ErrorMessage>交易成功</ErrorMessage><TrxType>PayReq</TrxType><OrderNo>634333823922218745</OrderNo><PaymentURL>https://easyabc.95599.cn/b2c/NotCheckStatus/PaymentModeAct.ebf?TOKEN=12977568750460430844</PaymentURL><OrderAmount>254011</OrderAmount></TrxResponse>";
|
|
|
string abcSign = "3+0sE/7PTfYfHYqHUwWoFzUVvr0h2HUaXpq5pr+r3+DhyvufhVUPq1We9a0E+DzqzwnW3ZD5EYLhA204o4oRiLauEzM1cj8ddXZJGAtk5ftv1OGVCV+bvts/Ei9FQp8ws5b7pNqAvIyoSbIToartR7AJ42RJsT5DxXBtFy0Y2oQ=";
|
|
|
|
|
|
var certManager = new CertManager();
|
|
|
certManager.SetupABCPubKey("Certs/TrustPay.cer");
|
|
|
var pass = RSAService.Verify(returnMsg, abcSign);
|
|
|
Assert.IsTrue(pass);
|
|
|
}
|
|
|
|
|
|
[Test]
|
|
|
public void MarketVerify()
|
|
|
{
|
|
|
string returnMsg = "<Message><Control><MerchantTrxNo>1301643918078</MerchantTrxNo><ReturnMessage>商户状态不允许交易!</ReturnMessage><ChannelType>01</ChannelType><Version>Java_V1.0</Version><ClientIP>187.61.1.1</ClientIP><BusinessID>MARKET</BusinessID><FunctionID>0000</FunctionID><ReturnCode>500105</ReturnCode><MerchantID>337199901033E01</MerchantID></Control><Parameters></Parameters><Resultsets></Resultsets></Message>";
|
|
|
string abcSign = "0m9ZR3zXZPKNa7z7Tr3DqHSoDx8NzgHeI0UCmlnpCqBGZS/YcGNZ+UThdVgfBacC27ELhtnRQaAzduQ0zzROs/Cpqm6h8BXfbhaU6Qr+Pp7Qfsu13XuBGr0iCfesFY5yoUlBnedUxCz6GOt9hGhVpPGsROvXU1cKIyafEGtpn9k=";
|
|
|
|
|
|
var certManager = new CertManager();
|
|
|
certManager.SetupABCPubKey("Certs/TrustPay.cer");
|
|
|
var pass = RSAService.Verify(returnMsg, abcSign );
|
|
|
Assert.IsTrue(pass);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|