Ejemplo n.º 1
0
        public async Task Add(CommonLogModel model)
        {
            //获取服务描述
            var description = await _remoteServiceDescriptionRepositoryHelper.QueryByName(RemoteServiceNames.AddCommonLog);

            if (description == null)
            {
                var fragment = new TextFragment()
                {
                    Code = TextCodes.NotFoundRemoteServiceDescriptionByName,
                    DefaultFormatting = "找不到名称为{0}的远程服务描述",
                    ReplaceParameters = new List <object>()
                    {
                        RemoteServiceNames.AddCommonLog
                    }
                };

                throw new UtilityException((int)Errors.NotFoundRemoteServiceDescriptionByName, fragment);
            }
            //获取认证信息
            var authInfos = await description.GenerateAuthInfo();

            //调用服务
            await HttpClinetHelper.PostAsync(model, description.Address, authInfos);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 通过模式2提交到监听者
        /// 通过HTTP协议Post消息到ListenerWebUrl的web接口,提交的对象类型为SMessagePostData
        /// 其中Signature为Id+Type+Data+CurrentTime的字符串格式(yyyy-MM-dd hh:mm:ss)通过ListenerWebSignature签名后的字符串
        /// 接收方需要对此进行校验
        /// </summary>
        /// <param name="listener"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        private async Task <ValidateResult> PostToListenerByMode2(SMessageTypeListener listener, SMessage message)
        {
            ValidateResult result = new ValidateResult()
            {
                Result = true
            };
            var expireTime        = DateTime.UtcNow.AddSeconds(300);
            var strContent        = $"{message.ID.ToString()}{message.Type}{message.Data}{expireTime.ToString("yyyy-MM-dd hh:mm:ss")}";
            var strSignature      = _securityService.SignByKey(strContent, listener.ListenerWebSignature);
            SMessagePostData data = new SMessagePostData()
            {
                ID         = message.ID,
                ExpireTime = expireTime,
                Type       = message.Type,
                Data       = message.Data,
                Signature  = strSignature
            };

            try
            {
                await HttpClinetHelper.PostAsync(data, listener.ListenerWebUrl);
            }
            catch (Exception ex)
            {
                result.Result      = false;
                result.Description = ex.Message;
            }

            return(result);
        }
Ejemplo n.º 3
0
        /// <summary>
        ///  通过模式2提交到web接口
        /// 通过HTTP协议Post消息到ScheduleActionServiceWebUrl的web接口,提交的对象类型为SMessagePostData
        /// 其中Signature为CurrentTime的字符串格式(yyyy-MM-dd hh:mm:ss)通过WebSignature签名后的字符串
        /// 接收方需要对此进行校验
        /// </summary>
        /// <param name="action"></param>
        /// <returns></returns>
        private async Task <IScheduleActionResult> ExecuteByMode2(ScheduleAction action)
        {
            ScheduleActionResultDefault result = new ScheduleActionResultDefault();
            var currentTime  = DateTime.UtcNow;
            var strContent   = $"{currentTime.ToString("yyyy-MM-dd hh:mm:ss")}";
            var strSignature = _securityService.SignByKey(strContent, action.WebSignature);
            await HttpClinetHelper.PostAsync(strSignature, action.ScheduleActionServiceWebUrl);

            return(result);
        }
Ejemplo n.º 4
0
 /// <summary>
 /// 模拟微信/支付宝退款接口
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public async Task <SimulatedRefundResponse> SimulatedRefund(SimulatedRefundRequest request)
 {
     return(await Task.Run(() =>
     {
         var refund_id = GenerateOrderNo("420000");
         if (!string.IsNullOrEmpty(request.notify_url))
         {
             var callBackResponse = new RefundCallBackResponse()
             {
                 return_code = "SUCCESS",
                 appid = request.appid,
                 mch_id = request.mch_id,
                 nonce_str = request.nonce_str,
                 transaction_id = GenerateOrderNo("420000"),
                 out_trade_no = request.out_trade_no,
                 out_refund_no = request.out_refund_no,
                 refund_id = refund_id,
                 total_fee = request.total_fee,
                 refund_fee = request.refund_fee,
                 settlement_refund_fee = request.refund_fee,
                 refund_status = "SUCCESS",
                 success_time = DateTime.Now.ToString()
             };
             var results = HttpClinetHelper.PostAsync <RefundCallBackResponse, BaseRefundResponse>(callBackResponse, request.notify_url);
             //记录回调是否成功
             if (results != null)
             {
             }
         }
         return new SimulatedRefundResponse()
         {
             return_code = "SUCCESS",
             return_msg = "",
             appid = request.appid,
             mch_id = request.mch_id,
             nonce_str = request.nonce_str,
             sign = request.sign,
             out_trade_no = request.out_trade_no,
             out_refund_no = request.out_refund_no,
             refund_id = refund_id,
             total_fee = request.total_fee,
             refund_fee = request.refund_fee
         };
     }));
 }
Ejemplo n.º 5
0
 public async Task <CreateOrderManagerResponse> CreateOrder(CreateOrderManagerRequest request)
 {
     return(await HttpClinetHelper.PostAsync <CreateOrderManagerRequest, CreateOrderManagerResponse>(request, $"{BaseUrl}/api/order/CreateOrder"));
 }
Ejemplo n.º 6
0
 public async Task <QueryProductAllResponse> QueryProductAllUpDate2(QueryProductAllRequest request)
 {
     //调用服务
     return(await HttpClinetHelper.PostAsync <QueryProductAllRequest, QueryProductAllResponse>(request, $"{BaseUrl}/api/product/All2"));
 }
Ejemplo n.º 7
0
 public async Task <Product> QueryNewProductByCode(string productCode)
 {
     return(await HttpClinetHelper.PostAsync <string, Product>(productCode, $"{BaseUrl}/api/product/"));
 }