mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2025-07-15 23:13:32 +08:00
test(tenpayv3): 补充基于国密算法的客户端测试
This commit is contained in:
parent
c75c68bde7
commit
23346ceab1
@ -109,7 +109,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayBusiness.Utilities
|
||||
|
||||
public void BlockUpdate(byte[] input, int inOff, int length)
|
||||
{
|
||||
//更新当前消息摘要
|
||||
while ((XBufOff != 0) && (length > 0))
|
||||
{
|
||||
Update(input[inOff]);
|
||||
@ -117,7 +116,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayBusiness.Utilities
|
||||
length--;
|
||||
}
|
||||
|
||||
//处理完整的消息摘要
|
||||
while (length > XBuf.Length)
|
||||
{
|
||||
ProcessWord(input, inOff);
|
||||
@ -127,7 +125,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayBusiness.Utilities
|
||||
ByteCount += XBuf.Length;
|
||||
}
|
||||
|
||||
//填充剩余的消息摘要
|
||||
while (length > 0)
|
||||
{
|
||||
Update(input[inOff]);
|
||||
@ -141,7 +138,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayBusiness.Utilities
|
||||
{
|
||||
long bitLength = (ByteCount << 3);
|
||||
|
||||
//添加字节
|
||||
Update(unchecked((byte)128));
|
||||
|
||||
while (XBufOff != 0) Update(unchecked((byte)0));
|
||||
|
@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using Org.BouncyCastle.Crypto;
|
||||
|
@ -473,6 +473,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Utilities
|
||||
/// <param name="publicKey">PKCS#8 公钥(PEM 格式)。</param>
|
||||
/// <param name="message">待验证的文本数据。</param>
|
||||
/// <param name="signature">经 Base64 编码的待验证的签名。</param>
|
||||
/// <param name="asn1Encoding">指示签名结果是否为 ASN.1 编码的形式。(默认值:true)</param>
|
||||
/// <returns>验证结果。</returns>
|
||||
public static bool VerifyWithSM3(string publicKey, string message, string signature, bool asn1Encoding = true)
|
||||
{
|
||||
|
@ -109,7 +109,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Utilities
|
||||
|
||||
public void BlockUpdate(byte[] input, int inOff, int length)
|
||||
{
|
||||
//更新当前消息摘要
|
||||
while ((XBufOff != 0) && (length > 0))
|
||||
{
|
||||
Update(input[inOff]);
|
||||
@ -117,7 +116,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Utilities
|
||||
length--;
|
||||
}
|
||||
|
||||
//处理完整的消息摘要
|
||||
while (length > XBuf.Length)
|
||||
{
|
||||
ProcessWord(input, inOff);
|
||||
@ -127,7 +125,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Utilities
|
||||
ByteCount += XBuf.Length;
|
||||
}
|
||||
|
||||
//填充剩余的消息摘要
|
||||
while (length > 0)
|
||||
{
|
||||
Update(input[inOff]);
|
||||
@ -141,7 +138,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Utilities
|
||||
{
|
||||
long bitLength = (ByteCount << 3);
|
||||
|
||||
//添加字节
|
||||
Update(unchecked((byte)128));
|
||||
|
||||
while (XBufOff != 0) Update(unchecked((byte)0));
|
||||
|
@ -13,7 +13,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
BillDateString = "2021-04-05"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteGetBillTradeBillAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteGetBillTradeBillAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.HashType);
|
||||
@ -28,7 +28,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
BillDateString = DateTimeOffset.Now.AddDays(-1).ToString("yyyy-MM-dd")
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteGetBillFundflowBillAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteGetBillFundflowBillAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.HashType);
|
||||
@ -43,7 +43,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
DownloadUrl = "https://api.mch.weixin.qq.com/v3/billdownload/file?token=FAKE_TOKEN"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteDownloadBillFileAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteDownloadBillFileAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotEmpty(response.RawBytes);
|
||||
|
@ -27,7 +27,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
},
|
||||
NotifyUrl = "http://127.0.0.1"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteCreateCombineTransactionAppAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteCreateCombineTransactionAppAsync(request);
|
||||
|
||||
Assert.NotNull(response.PrepayId);
|
||||
}
|
||||
@ -66,7 +66,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
},
|
||||
NotifyUrl = "http://127.0.0.1"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteCreateCombineTransactionJsapiAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteCreateCombineTransactionJsapiAsync(request);
|
||||
|
||||
Assert.NotNull(response.PrepayId);
|
||||
}
|
||||
@ -92,7 +92,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
},
|
||||
NotifyUrl = "http://127.0.0.1"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteCreateCombineTransactionH5Async(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteCreateCombineTransactionH5Async(request);
|
||||
|
||||
Assert.NotNull(response.H5Url);
|
||||
}
|
||||
@ -118,7 +118,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
},
|
||||
NotifyUrl = "http://127.0.0.1"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteCreateCombineTransactionNativeAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteCreateCombineTransactionNativeAsync(request);
|
||||
|
||||
Assert.NotNull(response.QrcodeUrl);
|
||||
}
|
||||
@ -130,7 +130,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
CombineOutTradeNumber = "FAKE_OUTTRADENO"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteGetCombineTransactionByCombineOutTradeNumberAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteGetCombineTransactionByCombineOutTradeNumberAsync(request);
|
||||
|
||||
Assert.NotNull(response.CombineAppId);
|
||||
Assert.NotNull(response.CombineMerchantId);
|
||||
@ -153,7 +153,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
}
|
||||
}
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteCloseCombineTransactionAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteCloseCombineTransactionAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
GoodsName = "FAKE_GOODS",
|
||||
CouponCodeMode = "WECHATPAY_MODE"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteCreateMarketingBusifavorStockAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteCreateMarketingBusifavorStockAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.StockId);
|
||||
@ -49,7 +49,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
StockId = "FAKE_STOCKID"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteGetMarketingBusifavorStockByStockIdAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteGetMarketingBusifavorStockByStockIdAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.StockId);
|
||||
@ -70,7 +70,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
OpenId = TestConfigs.WechatOpenId,
|
||||
BelongMerchantId = TestConfigs.WechatMerchantId
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteQueryMarketingBusifavorUserCouponsAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteQueryMarketingBusifavorUserCouponsAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
}
|
||||
@ -82,7 +82,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
NotifyUrl = "https://FAKE_URL"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteUpdateMarketingBusifavorCallbackAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteUpdateMarketingBusifavorCallbackAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.NotifyUrl);
|
||||
@ -92,7 +92,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
public async Task TestExecuteGetMarketingBusifavorCallback()
|
||||
{
|
||||
var request = new Models.GetMarketingBusifavorCallbackRequest();
|
||||
var response = await TestClients.Instance.ExecuteGetMarketingBusifavorCallbackAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteGetMarketingBusifavorCallbackAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.NotifyUrl);
|
||||
|
@ -35,7 +35,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
},
|
||||
IsNoCash = false
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteCreateMarketingFavorStockAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteCreateMarketingFavorStockAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.StockId);
|
||||
@ -48,7 +48,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
StockId = "FAKE_STOCKID"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteStartMarketingFavorStockAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteStartMarketingFavorStockAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.StockId);
|
||||
@ -61,7 +61,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
StockId = "FAKE_STOCKID"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecutePauseMarketingFavorStockAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecutePauseMarketingFavorStockAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.StockId);
|
||||
@ -74,7 +74,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
StockId = "FAKE_STOCKID"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteRestartMarketingFavorStockAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteRestartMarketingFavorStockAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.StockId);
|
||||
@ -87,7 +87,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
StockId = "FAKE_STOCKID"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteGetMarketingFavorStockByStockIdAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteGetMarketingFavorStockByStockIdAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.StockId);
|
||||
@ -97,7 +97,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
public async Task TestExecuteQueryMarketingFavorStocks()
|
||||
{
|
||||
var request = new Models.QueryMarketingFavorStocksRequest();
|
||||
var response = await TestClients.Instance.ExecuteQueryMarketingFavorStocksAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteQueryMarketingFavorStocksAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
|
||||
@ -119,7 +119,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
StockId = "FAKE_STOCKID"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteQueryMarketingFavorStockMerchantsAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteQueryMarketingFavorStockMerchantsAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.StockId);
|
||||
@ -133,7 +133,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
StockId = "FAKE_STOCKID"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteQueryMarketingFavorStockItemsAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteQueryMarketingFavorStockItemsAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.StockId);
|
||||
@ -148,7 +148,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
NotifyUrl = "https://FAKE_URL",
|
||||
Switch = false
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteUpdateMarketingFavorCallbackAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteUpdateMarketingFavorCallbackAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.NotifyUrl);
|
||||
|
@ -14,7 +14,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
FileName = "FAKE_IMAGE.jpg",
|
||||
FileBytes = Convert.FromBase64String("/9j/4AAQSkZJRgABAQEAeAB4AAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAcABwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9/KK+bv25viR458H/ABS+E+meDNb8S6YNW1LffWuk22lyRaig1DS7fZePfRuY7QR3cxc2zR3BOwRsWwp8I8Hftl/FD4k+H9G1HVvEnij4dHSbnTJ2hubXQGXxYrHSIypKpc7bS7N9MyqjW92DsH7nGwkfe++3/pP/AMktN97IbTX3X/P/AORfltqfoRRXzTr3xA8eeI7T4i6BdeJ/EXhM/DiyuFm13RrLTmvtZmuJPtGn/ZhdW09v5iWapHKDAVea6wqjZXvnw40rVtC+HuhWWv6m+ta7aafBDqOoNHHGb65WNRLMVjREXe4ZsIiqM8KBxRHVc3p+N/ytr2uvkno7ev4W/O+nezK3jX4TaB8Q9VsL7V7Frm70yNo7WVbmWFoVaa3nONjLz5lrA2eo8vjgsD554v8A+Cf/AMKvHGnaLaX2g6tHb6Bc2d1aR2PiTVLAFrQQi3WXyLhPPjQ28DeVNvRmhRmUsoNezUUdb9tfu2DpY4X4mfs4+E/i54b8RaVrFrq0dv4qntLrUZtM1u+0q7eW1aJ7eSO5tZopoGRoYyDE6E7ec5Oes8NeH4PCfh2w0u1e9lttOt47aJ7y8mvbh0RQoMk8zPLK+By8jM7HJYkkmr1FC0VkG+/T+v0R/9k=")
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteUploadMarketingMediaImageAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteUploadMarketingMediaImageAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.MediaUrl);
|
||||
|
@ -21,7 +21,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
BusinessType = "FAVOR_STOCK"
|
||||
}
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteBuildMarketingPartnershipAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteBuildMarketingPartnershipAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.State);
|
||||
@ -42,7 +42,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
BusinessType = "FAVOR_STOCK"
|
||||
}
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteQueryMarketingPartnershipsAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteQueryMarketingPartnershipsAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.PartnershipList);
|
||||
|
@ -10,7 +10,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
public async Task TestExecuteQueryMarketingPayGiftActivities()
|
||||
{
|
||||
var request = new Models.QueryMarketingPayGiftActivitiesRequest();
|
||||
var response = await TestClients.Instance.ExecuteQueryMarketingPayGiftActivitiesAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteQueryMarketingPayGiftActivitiesAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.ActivityList);
|
||||
|
@ -14,7 +14,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
FileName = "FAKE_IMAGE.jpg",
|
||||
FileBytes = Convert.FromBase64String("/9j/4AAQSkZJRgABAQEAeAB4AAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAcABwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9/KK+bv25viR458H/ABS+E+meDNb8S6YNW1LffWuk22lyRaig1DS7fZePfRuY7QR3cxc2zR3BOwRsWwp8I8Hftl/FD4k+H9G1HVvEnij4dHSbnTJ2hubXQGXxYrHSIypKpc7bS7N9MyqjW92DsH7nGwkfe++3/pP/AMktN97IbTX3X/P/AORfltqfoRRXzTr3xA8eeI7T4i6BdeJ/EXhM/DiyuFm13RrLTmvtZmuJPtGn/ZhdW09v5iWapHKDAVea6wqjZXvnw40rVtC+HuhWWv6m+ta7aafBDqOoNHHGb65WNRLMVjREXe4ZsIiqM8KBxRHVc3p+N/ytr2uvkno7ev4W/O+nezK3jX4TaB8Q9VsL7V7Frm70yNo7WVbmWFoVaa3nONjLz5lrA2eo8vjgsD554v8A+Cf/AMKvHGnaLaX2g6tHb6Bc2d1aR2PiTVLAFrQQi3WXyLhPPjQ28DeVNvRmhRmUsoNezUUdb9tfu2DpY4X4mfs4+E/i54b8RaVrFrq0dv4qntLrUZtM1u+0q7eW1aJ7eSO5tZopoGRoYyDE6E7ec5Oes8NeH4PCfh2w0u1e9lttOt47aJ7y8mvbh0RQoMk8zPLK+By8jM7HJYkkmr1FC0VkG+/T+v0R/9k=")
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteUploadMerchantMediaImageAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteUploadMerchantMediaImageAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.MediaId);
|
||||
@ -28,7 +28,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
FileName = "FAKE_IMAGE.mp4",
|
||||
FileBytes = Convert.FromBase64String("/9j/4AAQSkZJRgABAQEAeAB4AAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAcABwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9/KK+bv25viR458H/ABS+E+meDNb8S6YNW1LffWuk22lyRaig1DS7fZePfRuY7QR3cxc2zR3BOwRsWwp8I8Hftl/FD4k+H9G1HVvEnij4dHSbnTJ2hubXQGXxYrHSIypKpc7bS7N9MyqjW92DsH7nGwkfe++3/pP/AMktN97IbTX3X/P/AORfltqfoRRXzTr3xA8eeI7T4i6BdeJ/EXhM/DiyuFm13RrLTmvtZmuJPtGn/ZhdW09v5iWapHKDAVea6wqjZXvnw40rVtC+HuhWWv6m+ta7aafBDqOoNHHGb65WNRLMVjREXe4ZsIiqM8KBxRHVc3p+N/ytr2uvkno7ev4W/O+nezK3jX4TaB8Q9VsL7V7Frm70yNo7WVbmWFoVaa3nONjLz5lrA2eo8vjgsD554v8A+Cf/AMKvHGnaLaX2g6tHb6Bc2d1aR2PiTVLAFrQQi3WXyLhPPjQ28DeVNvRmhRmUsoNezUUdb9tfu2DpY4X4mfs4+E/i54b8RaVrFrq0dv4qntLrUZtM1u+0q7eW1aJ7eSO5tZopoGRoYyDE6E7ec5Oes8NeH4PCfh2w0u1e9lttOt47aJ7y8mvbh0RQoMk8zPLK+By8jM7HJYkkmr1FC0VkG+/T+v0R/9k=")
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteUploadMerchantMediaVideoAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteUploadMerchantMediaVideoAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.MediaId);
|
||||
|
@ -15,7 +15,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
BeginDateString = "2021-01-01",
|
||||
EndDateString = "2021-01-30"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteQueryMerchantServiceComplaintsAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteQueryMerchantServiceComplaintsAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.ComplaintList);
|
||||
@ -36,7 +36,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
ComplaintId = "FAKE_COMPLAINTID"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteGetMerchantServiceComplaintByComplaintIdAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteGetMerchantServiceComplaintByComplaintIdAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.ComplaintId);
|
||||
@ -52,7 +52,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
ComplaintId = "FAKE_COMPLAINTID"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteQueryMerchantServiceComplaintNegotiationHistoriesAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteQueryMerchantServiceComplaintNegotiationHistoriesAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.NegotiationHistoryList);
|
||||
@ -73,7 +73,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
NotifyUrl = "https://FAKE_URL"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteCreateMerchantServiceComplaintNotificationAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteCreateMerchantServiceComplaintNotificationAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.MerchantId);
|
||||
@ -84,7 +84,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
public async Task TestExecuteGetMerchantServiceComplaintNotification()
|
||||
{
|
||||
var request = new Models.GetMerchantServiceComplaintNotificationRequest();
|
||||
var response = await TestClients.Instance.ExecuteGetMerchantServiceComplaintNotificationAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteGetMerchantServiceComplaintNotificationAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.MerchantId);
|
||||
@ -98,7 +98,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
NotifyUrl = "https://FAKE_URL"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteUpdateMerchantServiceComplaintNotificationAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteUpdateMerchantServiceComplaintNotificationAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.MerchantId);
|
||||
@ -109,7 +109,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
public async Task TestExecuteDeleteMerchantServiceComplaintNotification()
|
||||
{
|
||||
var request = new Models.DeleteMerchantServiceComplaintNotificationRequest();
|
||||
var response = await TestClients.Instance.ExecuteDeleteMerchantServiceComplaintNotificationAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteDeleteMerchantServiceComplaintNotificationAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
}
|
||||
@ -122,7 +122,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
FileName = "FAKE_IMAGE.jpg",
|
||||
FileBytes = Convert.FromBase64String("/9j/4AAQSkZJRgABAQEAeAB4AAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAcABwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9/KK+bv25viR458H/ABS+E+meDNb8S6YNW1LffWuk22lyRaig1DS7fZePfRuY7QR3cxc2zR3BOwRsWwp8I8Hftl/FD4k+H9G1HVvEnij4dHSbnTJ2hubXQGXxYrHSIypKpc7bS7N9MyqjW92DsH7nGwkfe++3/pP/AMktN97IbTX3X/P/AORfltqfoRRXzTr3xA8eeI7T4i6BdeJ/EXhM/DiyuFm13RrLTmvtZmuJPtGn/ZhdW09v5iWapHKDAVea6wqjZXvnw40rVtC+HuhWWv6m+ta7aafBDqOoNHHGb65WNRLMVjREXe4ZsIiqM8KBxRHVc3p+N/ytr2uvkno7ev4W/O+nezK3jX4TaB8Q9VsL7V7Frm70yNo7WVbmWFoVaa3nONjLz5lrA2eo8vjgsD554v8A+Cf/AMKvHGnaLaX2g6tHb6Bc2d1aR2PiTVLAFrQQi3WXyLhPPjQ28DeVNvRmhRmUsoNezUUdb9tfu2DpY4X4mfs4+E/i54b8RaVrFrq0dv4qntLrUZtM1u+0q7eW1aJ7eSO5tZopoGRoYyDE6E7ec5Oes8NeH4PCfh2w0u1e9lttOt47aJ7y8mvbh0RQoMk8zPLK+By8jM7HJYkkmr1FC0VkG+/T+v0R/9k=")
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteUploadMerchantServiceImageAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteUploadMerchantServiceImageAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.MediaId);
|
||||
|
@ -20,7 +20,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
Total = 1
|
||||
}
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteCreatePayTransactionAppAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteCreatePayTransactionAppAsync(request);
|
||||
|
||||
Assert.NotNull(response.PrepayId);
|
||||
}
|
||||
@ -44,7 +44,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
OpenId = TestConfigs.WechatOpenId
|
||||
}
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteCreatePayTransactionJsapiAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteCreatePayTransactionJsapiAsync(request);
|
||||
|
||||
Assert.NotNull(response.PrepayId);
|
||||
}
|
||||
@ -63,7 +63,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
Total = 1
|
||||
}
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteCreatePayTransactionH5Async(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteCreatePayTransactionH5Async(request);
|
||||
|
||||
Assert.NotNull(response.H5Url);
|
||||
}
|
||||
@ -82,7 +82,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
Total = 1
|
||||
}
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteCreatePayTransactionNativeAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteCreatePayTransactionNativeAsync(request);
|
||||
|
||||
Assert.NotNull(response.QrcodeUrl);
|
||||
}
|
||||
@ -94,7 +94,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
TransactionId = "FAKE_TRANSACTIONID"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteGetPayTransactionByIdAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteGetPayTransactionByIdAsync(request);
|
||||
|
||||
Assert.NotNull(response.AppId);
|
||||
Assert.NotNull(response.MerchantId);
|
||||
@ -112,7 +112,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
OutTradeNumber = "FAKE_OUTTRADENO"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteGetPayTransactionByOutTradeNumberAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteGetPayTransactionByOutTradeNumberAsync(request);
|
||||
|
||||
Assert.NotNull(response.AppId);
|
||||
Assert.NotNull(response.MerchantId);
|
||||
@ -129,7 +129,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
OutTradeNumber = "TEST20210419193742518"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteClosePayTransactionAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteClosePayTransactionAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
}
|
||||
|
@ -18,8 +18,8 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
Name = "NAME",
|
||||
Type = "PERSONAL_OPENID"
|
||||
};
|
||||
TestClients.Instance.EncryptRequestSensitiveProperty(request);
|
||||
var response = await TestClients.Instance.ExecuteAddProfitSharingReceiverAsync(request);
|
||||
TestClients.InstanceUseRSA.EncryptRequestSensitiveProperty(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteAddProfitSharingReceiverAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
},
|
||||
Reason = "FAKE_REASON"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteCreateRefundDomesticRefundAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteCreateRefundDomesticRefundAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.OutRefundNumber);
|
||||
@ -40,7 +40,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
OutRefundNumber = "FAKE_OUTREFUNDNO"
|
||||
};
|
||||
var response = await TestClients.Instance.ExecuteGetRefundDomesticRefundByOutRefundNumberAsync(request);
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteGetRefundDomesticRefundByOutRefundNumberAsync(request);
|
||||
|
||||
Assert.True(response.IsSuccessful());
|
||||
Assert.NotNull(response.RefundId);
|
||||
|
@ -26,8 +26,8 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
MerchantId = TestConfigs.WechatMerchantId,
|
||||
MerchantV3Secret = TestConfigs.WechatMerchantSecret,
|
||||
MerchantCertificateSerialNumber = TestConfigs.WechatMerchantCertificateSerialNumber,
|
||||
MerchantCertificatePrivateKey = TestConfigs.WechatMerchantCertificatePrivateKey,
|
||||
MerchantCertificateSerialNumber = TestConfigs.WechatMerchantRSACertificateSerialNumber,
|
||||
MerchantCertificatePrivateKey = TestConfigs.WechatMerchantRSACertificatePrivateKey,
|
||||
AutoEncryptRequestSensitiveProperty = true,
|
||||
AutoDecryptResponseSensitiveProperty = true
|
||||
});
|
||||
@ -39,8 +39,8 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
MerchantId = TestConfigs.WechatMerchantId,
|
||||
MerchantV3Secret = TestConfigs.WechatMerchantSecret,
|
||||
MerchantCertificateSerialNumber = TestConfigs.WechatMerchantCertificateSerialNumber,
|
||||
MerchantCertificatePrivateKey = TestConfigs.WechatMerchantCertificatePrivateKey,
|
||||
MerchantCertificateSerialNumber = TestConfigs.WechatMerchantRSACertificateSerialNumber,
|
||||
MerchantCertificatePrivateKey = TestConfigs.WechatMerchantRSACertificatePrivateKey,
|
||||
AutoEncryptRequestSensitiveProperty = false,
|
||||
AutoDecryptResponseSensitiveProperty = false
|
||||
});
|
||||
|
@ -10,13 +10,27 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
await TestClients.InitializeCertificateManagerAsync();
|
||||
|
||||
var request = new Models.QueryCertificatesRequest();
|
||||
var response = await TestClients.Instance.ExecuteQueryCertificatesAsync(request);
|
||||
var request = new Models.QueryCertificatesRequest() { AlgorithmType = "RSA" };
|
||||
var response = await TestClients.InstanceUseRSA.ExecuteQueryCertificatesAsync(request);
|
||||
|
||||
Assert.True(response.RawStatus == 200);
|
||||
Assert.True(response.RawHeaders.Count > 0);
|
||||
Assert.True(response.RawBytes.Length > 0);
|
||||
Assert.True(TestClients.Instance.VerifyResponseSignature(response));
|
||||
Assert.True(TestClients.InstanceUseRSA.VerifyResponseSignature(response));
|
||||
Assert.NotNull(response.WechatpayRequestId);
|
||||
Assert.NotNull(response.WechatpayNonce);
|
||||
Assert.NotNull(response.WechatpayTimestamp);
|
||||
Assert.NotNull(response.WechatpaySignature);
|
||||
Assert.NotNull(response.WechatpaySignatureType);
|
||||
Assert.NotNull(response.WechatpayCertificateSerialNumber);
|
||||
|
||||
request = new Models.QueryCertificatesRequest() { AlgorithmType = "SM2" };
|
||||
response = await TestClients.InstanceUseSM2.ExecuteQueryCertificatesAsync(request);
|
||||
|
||||
Assert.True(response.RawStatus == 200);
|
||||
Assert.True(response.RawHeaders.Count > 0);
|
||||
Assert.True(response.RawBytes.Length > 0);
|
||||
Assert.True(TestClients.InstanceUseSM2.VerifyResponseSignature(response));
|
||||
Assert.NotNull(response.WechatpayRequestId);
|
||||
Assert.NotNull(response.WechatpayNonce);
|
||||
Assert.NotNull(response.WechatpayTimestamp);
|
||||
|
@ -7,31 +7,41 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
{
|
||||
static TestClients()
|
||||
{
|
||||
var certificateManager = new Settings.InMemoryCertificateManager();
|
||||
Instance = new WechatTenpayClient(new WechatTenpayClientOptions()
|
||||
var manager = new Settings.InMemoryCertificateManager();
|
||||
InstanceUseRSA = new WechatTenpayClient(new WechatTenpayClientOptions()
|
||||
{
|
||||
MerchantId = TestConfigs.WechatMerchantId,
|
||||
MerchantV3Secret = TestConfigs.WechatMerchantSecret,
|
||||
MerchantCertificateSerialNumber = TestConfigs.WechatMerchantCertificateSerialNumber,
|
||||
MerchantCertificatePrivateKey = TestConfigs.WechatMerchantCertificatePrivateKey,
|
||||
PlatformCertificateManager = certificateManager
|
||||
MerchantCertificateSerialNumber = TestConfigs.WechatMerchantRSACertificateSerialNumber,
|
||||
MerchantCertificatePrivateKey = TestConfigs.WechatMerchantRSACertificatePrivateKey,
|
||||
PlatformCertificateManager = manager
|
||||
});
|
||||
InstanceUseSM2 = new WechatTenpayClient(new WechatTenpayClientOptions()
|
||||
{
|
||||
MerchantId = TestConfigs.WechatMerchantId,
|
||||
MerchantV3Secret = TestConfigs.WechatMerchantSecret,
|
||||
SignScheme = Constants.SignSchemes.WECHATPAY2_SM2_WITH_SM3,
|
||||
MerchantCertificateSerialNumber = TestConfigs.WechatMerchantSM2CertificateSerialNumber!,
|
||||
MerchantCertificatePrivateKey = TestConfigs.WechatMerchantSM2CertificatePrivateKey!,
|
||||
PlatformCertificateManager = manager
|
||||
});
|
||||
}
|
||||
|
||||
internal static async Task InitializeCertificateManagerAsync()
|
||||
{
|
||||
var request = new Models.QueryCertificatesRequest();
|
||||
var response = await Instance.ExecuteQueryCertificatesAsync(request);
|
||||
var request = new Models.QueryCertificatesRequest() { AlgorithmType = "ALL" };
|
||||
var response = await InstanceUseRSA.ExecuteQueryCertificatesAsync(request);
|
||||
|
||||
if (!response.IsSuccessful())
|
||||
throw new Exception();
|
||||
|
||||
foreach (var certificate in Instance.DecryptResponseSensitiveProperty(response).CertificateList)
|
||||
foreach (var certificate in InstanceUseRSA.DecryptResponseSensitiveProperty(response).CertificateList)
|
||||
{
|
||||
Instance.PlatformCertificateManager.AddEntry(new Settings.CertificateEntry(certificate));
|
||||
InstanceUseRSA.PlatformCertificateManager.AddEntry(new Settings.CertificateEntry(certificate));
|
||||
}
|
||||
}
|
||||
|
||||
public static readonly WechatTenpayClient Instance;
|
||||
public static readonly WechatTenpayClient InstanceUseRSA;
|
||||
public static readonly WechatTenpayClient InstanceUseSM2;
|
||||
}
|
||||
}
|
||||
|
@ -19,8 +19,10 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
var config = jdoc.RootElement.GetProperty("TestConfig");
|
||||
WechatMerchantId = config.GetProperty("MerchantId").GetString()!;
|
||||
WechatMerchantSecret = config.GetProperty("MerchantSecret").GetString()!;
|
||||
WechatMerchantCertificateSerialNumber = config.GetProperty("MerchantCertificateSerialNumber").GetString()!;
|
||||
WechatMerchantCertificatePrivateKey = config.GetProperty("MerchantCertificatePrivateKey").GetString()!;
|
||||
WechatMerchantRSACertificateSerialNumber = config.GetProperty("MerchantRSACertificateSerialNumber").GetString()!;
|
||||
WechatMerchantRSACertificatePrivateKey = config.GetProperty("MerchantRSACertificatePrivateKey").GetString()!;
|
||||
WechatMerchantSM2CertificateSerialNumber = config.GetProperty("MerchantSM2CertificateSerialNumber").GetString();
|
||||
WechatMerchantSM2CertificatePrivateKey = config.GetProperty("MerchantSM2CertificatePrivateKey").GetString();
|
||||
WechatAppId = config.GetProperty("AppId").GetString()!;
|
||||
WechatOpenId = config.GetProperty("OpenId").GetString()!;
|
||||
|
||||
@ -35,8 +37,10 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
|
||||
public static readonly string WechatMerchantId;
|
||||
public static readonly string WechatMerchantSecret;
|
||||
public static readonly string WechatMerchantCertificateSerialNumber;
|
||||
public static readonly string WechatMerchantCertificatePrivateKey;
|
||||
public static readonly string WechatMerchantRSACertificateSerialNumber;
|
||||
public static readonly string WechatMerchantRSACertificatePrivateKey;
|
||||
public static readonly string? WechatMerchantSM2CertificateSerialNumber;
|
||||
public static readonly string? WechatMerchantSM2CertificatePrivateKey;
|
||||
public static readonly string WechatAppId;
|
||||
public static readonly string WechatOpenId;
|
||||
|
||||
|
@ -2,8 +2,10 @@
|
||||
"TestConfig": {
|
||||
"MerchantId": "请在此填写用于测试的微信商户号",
|
||||
"MerchantSecret": "请在此填写用于测试的微信商户 API v3 密钥",
|
||||
"MerchantCertificateSerialNumber": "请在此填写用于测试的微信商户 API 证书序列号",
|
||||
"MerchantCertificatePrivateKey": "请在此填写用于测试的微信商户 API 证书私钥(字符串格式)",
|
||||
"MerchantRSACertificateSerialNumber": "请在此填写用于测试的微信商户基于 RSA 算法的 API 证书序列号",
|
||||
"MerchantRSACertificatePrivateKey": "请在此填写用于测试的微信商户基于 RSA 算法的 API 证书私钥(字符串格式)",
|
||||
"MerchantSM2CertificateSerialNumber": "请在此填写用于测试的微信商户基于 SM2 算法的 API 证书序列号",
|
||||
"MerchantSM2CertificatePrivateKey": "请在此填写用于测试的微信商户基于 SM2 算法的 API 证书私钥(字符串格式)",
|
||||
"AppId": "请在此填写用于测试的微信 AppId",
|
||||
"OpenId": "请在此填写用于测试的微信用户唯一标识"
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user