You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

121 lines
4.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Microsoft.VisualStudio.TestTools.UnitTesting;
using Senparc.CO2NET.Extensions;
using Senparc.Weixin.Helpers;
using Senparc.Weixin.TenPayV3.Apis.Marketing;
using Senparc.Weixin.TenPayV3.Entities;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Senparc.Weixin.TenPayV3.Apis.Tests
{
public partial class MarketingApisTests
{
#region 委托营销接口
BuildPartnershipsReturnJson buildPartnershipsResult = null;
/// <summary>
/// 激建立合作关系测试
/// https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter9_1_3.shtml
/// </summary>
[TestMethod()]
public void BuildPartnershipsAsyncTest()
{
// 如果还未创建代金券批次 则创建新的代金券批次
if (createStockResult is null)
{
CreateStockAsyncTest();
}
//var key = TenPayHelper.GetRegisterKey(Config.SenparcWeixinSetting);
//var TenPayV3Info = TenPayV3InfoCollection.Data[key];
// TODO: 此处信息需要完善
var parner = new BuildPartnershipsRequestData.Partner("{合作方类型}", "{合作方Appid}", "{合作方商户id}");
var authorized_data = new BuildPartnershipsRequestData.Authorized_Data("FAVOR_STOCK", createStockResult.stock_id);
var requestData = new BuildPartnershipsRequestData(parner, authorized_data);
var marketingApis = new MarketingApis();
try
{
// 合作类型设置为appid 但传入 "partner.merchant_id" 的情况
buildPartnershipsResult = marketingApis.BuildPartnershipsAsync(requestData).GetAwaiter().GetResult();
}
catch (Exception ex)
{
Assert.IsInstanceOfType(ex, typeof(TenpayApiRequestException));
Console.WriteLine(ex.Message);
Assert.IsTrue(ex.Message.Contains("为null"));
}
// 修改参数
requestData.partner.merchant_id = null;
buildPartnershipsResult = marketingApis.BuildPartnershipsAsync(requestData).GetAwaiter().GetResult();
Console.WriteLine("微信支付 V3 建立合作关系接口结果:" + buildPartnershipsResult.ToJson(true));
Assert.IsNotNull(buildPartnershipsResult);
Assert.IsTrue(buildPartnershipsResult.ResultCode.Success);
Assert.IsTrue(buildPartnershipsResult.VerifySignSuccess == true);//通过验证
}
/// <summary>
/// 查询合作关系列表接口测试
/// https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter9_5_3.shtml
/// </summary>
[TestMethod()]
public void QueryPartnershipsAsyncTest()
{
// 如果还未创建建立合作关系 则建立合作关系
if (buildPartnershipsResult is null)
{
BuildPartnershipsAsyncTest();
}
var requestData = new QueryPartnershipsRequestData(buildPartnershipsResult);
var marketingApis = new MarketingApis();
var result = marketingApis.QueryPartnershipsAsync(requestData).GetAwaiter().GetResult();
Console.WriteLine("微信支付 V3 查询合作关系列表接口结果:" + result.ToJson(true));
Assert.IsNotNull(result);
Assert.IsTrue(result.ResultCode.Success);
Assert.IsTrue(result.VerifySignSuccess == true);//通过验证
}
/// <summary>
/// 终止合作关系接口测试
/// https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter9_5_2.shtml
/// </summary>
[TestMethod()]
public void TerminatePartnershipsAsyncTest()
{
// 如果还未创建建立合作关系 则建立合作关系
if (buildPartnershipsResult is null)
{
BuildPartnershipsAsyncTest();
}
var requestData = new TerminatePartnershipsRequestData(buildPartnershipsResult);
var marketingApis = new MarketingApis();
var result = marketingApis.TerminatePartnershipsAsync(requestData).GetAwaiter().GetResult();
Console.WriteLine("微信支付 V3 终止合作关系接口结果:" + result.ToJson(true));
Assert.IsNotNull(result);
Assert.IsTrue(result.ResultCode.Success);
Assert.IsTrue(result.VerifySignSuccess == true);//通过验证
}
#endregion
}
}