示例#1
0
        public void CreateDirectCompleteServiceOrderAsyncTest()
        {
            var key          = TenPayHelper.GetRegisterKey(Config.SenparcWeixinSetting);
            var TenPayV3Info = TenPayV3InfoCollection.Data[key];

            // 服务单号
            var out_order_no = string.Format("{0}{1}{2}", TenPayV3Info.MchId /*10位*/, SystemTime.Now.ToString("yyyyMMddHHmmss"),
                                             TenPayV3Util.BuildRandomStr(6));
            //服务时间段
            var time_range = new CreateDirectCompleteServiceOrderRequestData.Time_Range(new TenpayDateTime(DateTime.Now), null, new TenpayDateTime(DateTime.Now.AddDays(1)), null);
            //付款项目列表
            var post_payments = new CreateDirectCompleteServiceOrderRequestData.Post_Payment[] { new CreateDirectCompleteServiceOrderRequestData.Post_Payment("SenparcUnitTest名称测试", 1, "单元测试1分", null) };
            //TODO:服务id获取 请阅读 https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter3_1_1.shtml
            var          serviceId    = "{serviceId}";
            var          requestData  = new CreateDirectCompleteServiceOrderRequestData(out_order_no, TenPayV3Info.AppId, openId, serviceId, "SenparcUnitTest", post_payments, null, time_range, null, 1, null, null, null, null);
            PayScoreApis payScoreApis = new PayScoreApis();
            var          result       = payScoreApis.CreateDirectCompleteServiceOrderAsync(requestData).GetAwaiter().GetResult();

            Console.WriteLine("微信支付 V3 创单结单合并测试结果:" + result.ToJson(true));

            Assert.IsNotNull(result);
            Assert.IsTrue(result.ResultCode.Success);
            Assert.IsTrue(result.VerifySignSuccess == true);//通过验证
        }
示例#2
0
        /// <summary>
        /// 创单结单合并接口
        /// <para>该接口适用于无需微信支付分做订单风控判断的业务场景,在服务完成后,通过该接口对用户进行免密代扣。</para>
        /// <para>更多详细请参考 https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter6_1_1.shtml </para>
        /// </summary>
        /// <param name="data">微信支付需要POST的Data数据</param>
        /// <param name="timeOut">超时时间,单位为ms</param>
        /// <returns></returns>
        public async Task <CreateDirectCompleteServiceOrderReturnJson> CreateDirectCompleteServiceOrderAsync(CreateDirectCompleteServiceOrderRequestData data, int timeOut = Config.TIME_OUT)
        {
            var url = ReurnPayApiUrl("https://api.mch.weixin.qq.com/{0}payscore/serviceorder/direct-complete");
            TenPayApiRequest tenPayApiRequest = new(_tenpayV3Setting);

            return(await tenPayApiRequest.RequestAsync <CreateDirectCompleteServiceOrderReturnJson>(url, data, timeOut));
        }