/// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="requestParams"></param>
        /// <param name="request"></param>
        /// <returns></returns>
        private AopDictionary SerializeBizModel <T>(AopDictionary requestParams, IAopRequest <T> request) where T : AopResponse
        {
            AopDictionary result            = requestParams;
            Boolean       isBizContentEmpty = !requestParams.ContainsKey(BIZ_CONTENT) || String.IsNullOrEmpty(requestParams[BIZ_CONTENT]);

            if (isBizContentEmpty && request.GetBizModel() != null)
            {
                AopObject bizModel = request.GetBizModel();
                String    content  = Serialize(bizModel);
                result.Add(BIZ_CONTENT, content);
            }
            return(result);
        }
Exemple #2
0
        public IDictionary <string, string> GetParameters()
        {
            AopDictionary parameters = new AopDictionary();

            parameters.Add("channel_id", this.ChannelId);
            parameters.Add("ext_info", this.ExtInfo);
            parameters.Add("pass", this.Pass);
            parameters.Add("serial_number", this.SerialNumber);
            parameters.Add("status", this.Status);
            parameters.Add("verify_code", this.VerifyCode);
            parameters.Add("verify_type", this.VerifyType);
            return(parameters);
        }
Exemple #3
0
        public IDictionary <string, string> GetParameters()
        {
            AopDictionary parameters = new AopDictionary();

            parameters.Add("bill_key", this.BillKey);
            parameters.Add("charge_inst", this.ChargeInst);
            parameters.Add("chargeoff_inst", this.ChargeoffInst);
            parameters.Add("company_id", this.CompanyId);
            parameters.Add("extend", this.Extend);
            parameters.Add("order_type", this.OrderType);
            parameters.Add("sub_order_type", this.SubOrderType);
            return(parameters);
        }
        public IDictionary <string, string> GetParameters()
        {
            AopDictionary parameters = new AopDictionary();

            parameters.Add("biz_ext_params", this.BizExtParams);
            parameters.Add("columns", this.Columns);
            parameters.Add("file_charset", this.FileCharset);
            parameters.Add("file_description", this.FileDescription);
            parameters.Add("file_type", this.FileType);
            parameters.Add("primary_key_columns", this.PrimaryKeyColumns);
            parameters.Add("records", this.Records);
            return(parameters);
        }
 public IDictionary<string, string> GetParameters()
 {
     AopDictionary parameters = new AopDictionary();
     parameters.Add("agent_code", this.AgentCode);
     parameters.Add("agreement_id", this.AgreementId);
     parameters.Add("alipay_user_id", this.AlipayUserId);
     parameters.Add("card_name", this.CardName);
     parameters.Add("card_no", this.CardNo);
     parameters.Add("public_id", this.PublicId);
     return parameters;
 }
        public IDictionary <string, string> GetParameters()
        {
            AopDictionary parameters = new AopDictionary();

            parameters.Add("memo", this.Memo);
            parameters.Add("merchant_order_no", this.MerchantOrderNo);
            parameters.Add("order_time", this.OrderTime);
            parameters.Add("point_count", this.PointCount);
            parameters.Add("user_symbol", this.UserSymbol);
            parameters.Add("user_symbol_type", this.UserSymbolType);
            return(parameters);
        }
Exemple #7
0
        public IDictionary <string, string> GetParameters()
        {
            AopDictionary parameters = new AopDictionary();

            parameters.Add("cache_interval", this.CacheInterval);
            parameters.Add("query_conditions", this.QueryConditions);
            parameters.Add("service_name", this.ServiceName);
            parameters.Add("visit_biz", this.VisitBiz);
            parameters.Add("visit_biz_line", this.VisitBizLine);
            parameters.Add("visit_domain", this.VisitDomain);
            return(parameters);
        }
Exemple #8
0
        public IDictionary <string, string> GetParameters()
        {
            AopDictionary parameters = new AopDictionary();

            parameters.Add("check_signcard", this.CheckSigncard);
            parameters.Add("f_return_url", this.FReturnUrl);
            parameters.Add("has_spi", this.HasSpi);
            parameters.Add("operator_name", this.OperatorName);
            parameters.Add("province_name", this.ProvinceName);
            parameters.Add("s_return_url", this.SReturnUrl);
            return(parameters);
        }
        public IDictionary <string, string> GetParameters()
        {
            AopDictionary parameters = new AopDictionary();

            parameters.Add("end_time", this.EndTime);
            parameters.Add("fields", this.Fields);
            parameters.Add("page_no", this.PageNo);
            parameters.Add("page_size", this.PageSize);
            parameters.Add("start_time", this.StartTime);
            parameters.Add("type", this.Type);
            return(parameters);
        }
 public IDictionary<string, string> GetParameters()
 {
     AopDictionary parameters = new AopDictionary();
     parameters.Add("subscriber_user_id", this.SubscriberUserId);
     return parameters;
 }
Exemple #11
0
        public T Execute <T>(IAopRequest <T> request, string accessToken, string appAuthToken) where T : AopResponse
        {
            AlipayMobilePublicMultiMediaDownloadRequest multiMediaDownloadRequest = ((AlipayMobilePublicMultiMediaDownloadRequest)request);
            // 添加协议级请求参数
            AopDictionary txtParams = new AopDictionary(request.GetParameters());

            txtParams.Add(METHOD, request.GetApiName());
            txtParams.Add(VERSION, Version);
            txtParams.Add(APP_ID, appId);
            txtParams.Add(FORMAT, format);
            txtParams.Add(TIMESTAMP, DateTime.Now);
            txtParams.Add(ACCESS_TOKEN, accessToken);
            txtParams.Add(SIGN_TYPE, signType);
            txtParams.Add(TERMINAL_TYPE, request.GetTerminalType());
            txtParams.Add(TERMINAL_INFO, request.GetTerminalInfo());
            txtParams.Add(PROD_CODE, request.GetProdCode());

            if (!string.IsNullOrEmpty(appAuthToken))
            {
                txtParams.Add(APP_AUTH_TOKEN, appAuthToken);
            }


            // 添加签名参数
            txtParams.Add(SIGN, AopUtils.SignAopRequest(txtParams, privateKeyPem, charset, signType));

            Stream      outStream = multiMediaDownloadRequest.stream;
            AopResponse rsp       = DoGet(txtParams, outStream);

            return((T)rsp);
        }
        public IDictionary <string, string> GetParameters()
        {
            AopDictionary parameters = new AopDictionary();

            parameters.Add("category", this.Category);
            parameters.Add("content", this.Content);
            parameters.Add("desc", this.Desc);
            parameters.Add("msg_type", this.MsgType);
            parameters.Add("source_ext_info", this.SourceExtInfo);
            parameters.Add("title", this.Title);
            parameters.Add("unique_msg_id", this.UniqueMsgId);
            parameters.Add("video_length", this.VideoLength);
            parameters.Add("video_samples", this.VideoSamples);
            parameters.Add("video_size", this.VideoSize);
            parameters.Add("video_source", this.VideoSource);
            parameters.Add("video_temporary_url", this.VideoTemporaryUrl);
            parameters.Add("video_url", this.VideoUrl);
            return(parameters);
        }
        private AopDictionary buildRequestParams <T>(IAopRequest <T> request, String accessToken, String appAuthToken) where T : AopResponse
        {
            // 默认参数
            AopDictionary oriParams = new AopDictionary(request.GetParameters());

            // 序列化BizModel
            AopDictionary result = SerializeBizModel(oriParams, request);

            // 获取参数
            String charset    = String.IsNullOrEmpty(this.charset) ? "utf-8" : this.charset;
            String apiVersion = String.IsNullOrEmpty(request.GetApiVersion()) ? this.Version : request.GetApiVersion();

            // 添加协议级请求参数,为空的参数后面会自动过滤,这里不做处理。
            result.Add(METHOD, request.GetApiName());
            result.Add(VERSION, apiVersion);
            result.Add(APP_ID, appId);
            result.Add(FORMAT, format);
            result.Add(TIMESTAMP, DateTime.Now);
            result.Add(ACCESS_TOKEN, accessToken);
            result.Add(SIGN_TYPE, signType);
            result.Add(TERMINAL_TYPE, request.GetTerminalType());
            result.Add(TERMINAL_INFO, request.GetTerminalInfo());
            result.Add(PROD_CODE, request.GetProdCode());
            result.Add(NOTIFY_URL, request.GetNotifyUrl());
            result.Add(CHARSET, charset);
            result.Add(RETURN_URL, request.GetReturnUrl());
            result.Add(APP_AUTH_TOKEN, appAuthToken);

            if (request.GetNeedEncrypt())
            {
                if (String.IsNullOrEmpty(result[BIZ_CONTENT]))
                {
                    throw new AopException("api request Fail ! The reason: encrypt request is not supported!");
                }

                if (String.IsNullOrEmpty(this.encyptKey) || String.IsNullOrEmpty(this.encyptType))
                {
                    throw new AopException("encryptType or encryptKey must not null!");
                }

                if (!"AES".Equals(this.encyptType))
                {
                    throw new AopException("api only support Aes!");
                }

                String encryptContent = AopUtils.AesEncrypt(this.encyptKey, result[BIZ_CONTENT], this.charset);
                result.Remove(BIZ_CONTENT);
                result.Add(BIZ_CONTENT, encryptContent);
                result.Add(ENCRYPT_TYPE, this.encyptType);
            }

            return(result);
        }
        public T Execute <T>(IAopRequest <T> request, string accessToken, string appAuthToken) where T : AopResponse
        {
            if (string.IsNullOrEmpty(this.charset))
            {
                this.charset = "utf-8";
            }

            string apiVersion = null;

            if (!string.IsNullOrEmpty(request.GetApiVersion()))
            {
                apiVersion = request.GetApiVersion();
            }
            else
            {
                apiVersion = Version;
            }

            // 添加协议级请求参数
            AopDictionary txtParams = new AopDictionary(request.GetParameters());

            // 序列化BizModel
            txtParams = SerializeBizModel(txtParams, request);

            txtParams.Add(METHOD, request.GetApiName());
            txtParams.Add(VERSION, apiVersion);
            txtParams.Add(APP_ID, appId);
            txtParams.Add(FORMAT, format);
            txtParams.Add(TIMESTAMP, DateTime.Now);
            txtParams.Add(ACCESS_TOKEN, accessToken);
            txtParams.Add(SIGN_TYPE, signType);
            txtParams.Add(TERMINAL_TYPE, request.GetTerminalType());
            txtParams.Add(TERMINAL_INFO, request.GetTerminalInfo());
            txtParams.Add(PROD_CODE, request.GetProdCode());
            txtParams.Add(CHARSET, charset);


            if (!string.IsNullOrEmpty(request.GetNotifyUrl()))
            {
                txtParams.Add(NOTIFY_URL, request.GetNotifyUrl());
            }

            if (!string.IsNullOrEmpty(appAuthToken))
            {
                txtParams.Add(APP_AUTH_TOKEN, appAuthToken);
            }


            if (request.GetNeedEncrypt())
            {
                if (string.IsNullOrEmpty(txtParams[BIZ_CONTENT]))
                {
                    throw new AopException("api request Fail ! The reason: encrypt request is not supported!");
                }

                if (string.IsNullOrEmpty(this.encyptKey) || string.IsNullOrEmpty(this.encyptType))
                {
                    throw new AopException("encryptType or encryptKey must not null!");
                }

                if (!"AES".Equals(this.encyptType))
                {
                    throw new AopException("api only support Aes!");
                }

                string encryptContent = AopUtils.AesEncrypt(this.encyptKey, txtParams[BIZ_CONTENT], this.charset);
                txtParams.Remove(BIZ_CONTENT);
                txtParams.Add(BIZ_CONTENT, encryptContent);
                txtParams.Add(ENCRYPT_TYPE, this.encyptType);
            }

            // 添加签名参数
            txtParams.Add(SIGN, AopUtils.SignAopRequest(txtParams, privateKeyPem, charset, this.keyFromFile, signType));



            // 是否需要上传文件
            string body;


            if (request is IAopUploadRequest <T> )
            {
                IAopUploadRequest <T>          uRequest   = (IAopUploadRequest <T>)request;
                IDictionary <string, FileItem> fileParams = AopUtils.CleanupDictionary(uRequest.GetFileParameters());
                body = webUtils.DoPost(this.serverUrl + "?" + CHARSET + "=" + this.charset, txtParams, fileParams, this.charset);
            }
            else
            {
                body = webUtils.DoPost(this.serverUrl + "?" + CHARSET + "=" + this.charset, txtParams, this.charset);
            }

            T rsp = null;
            IAopParser <T> parser = null;

            if ("xml".Equals(format))
            {
                parser = new AopXmlParser <T>();
                rsp    = parser.Parse(body, charset);
            }
            else
            {
                parser = new AopJsonParser <T>();
                rsp    = parser.Parse(body, charset);
            }

            ResponseParseItem item = parseRespItem(request, body, parser, this.encyptKey, this.encyptType, charset);

            rsp = parser.Parse(item.realContent, charset);

            CheckResponseSign(request, item.respContent, rsp.IsError, parser, this.alipayPublicKey, this.charset, signType, this.keyFromFile);

            return(rsp);
        }
        public T pageExecute <T>(IAopRequest <T> request, string accessToken, string reqMethod) where T : AopResponse
        {
            if (string.IsNullOrEmpty(this.charset))
            {
                this.charset = "utf-8";
            }

            string apiVersion = null;

            if (!string.IsNullOrEmpty(request.GetApiVersion()))
            {
                apiVersion = request.GetApiVersion();
            }
            else
            {
                apiVersion = Version;
            }

            AopDictionary txtParams = new AopDictionary(request.GetParameters());

            // 序列化BizModel
            txtParams = SerializeBizModel(txtParams, request);

            System.Text.StringBuilder xmlData = new System.Text.StringBuilder();


            // 添加协议级请求参数
            //AopDictionary txtParams = new AopDictionary(request.GetParameters());
            txtParams.Add(METHOD, request.GetApiName());
            txtParams.Add(VERSION, apiVersion);
            txtParams.Add(APP_ID, appId);
            txtParams.Add(FORMAT, format);
            txtParams.Add(TIMESTAMP, DateTime.Now);
            txtParams.Add(ACCESS_TOKEN, accessToken);
            txtParams.Add(SIGN_TYPE, signType);
            txtParams.Add(TERMINAL_TYPE, request.GetTerminalType());
            txtParams.Add(TERMINAL_INFO, request.GetTerminalInfo());
            txtParams.Add(PROD_CODE, request.GetProdCode());
            txtParams.Add(NOTIFY_URL, request.GetNotifyUrl());
            txtParams.Add(CHARSET, this.charset);
            //txtParams.Add(RETURN_URL, this.return_url);
            txtParams.Add(RETURN_URL, request.GetReturnUrl());
            //字典排序
            IDictionary <string, string> sortedTxtParams = new SortedDictionary <string, string>(txtParams);

            txtParams = new AopDictionary(sortedTxtParams);
            // 排序返回字典类型添加签名参数
            txtParams.Add(SIGN, AopUtils.SignAopRequest(sortedTxtParams, privateKeyPem, this.charset, this.keyFromFile, this.signType));

            // 是否需要上传文件
            string body;

            if (request is IAopUploadRequest <T> )
            {
                IAopUploadRequest <T>          uRequest   = (IAopUploadRequest <T>)request;
                IDictionary <string, FileItem> fileParams = AopUtils.CleanupDictionary(uRequest.GetFileParameters());
                body = webUtils.DoPost(this.serverUrl + "?" + CHARSET + "=" + this.charset, txtParams, fileParams, this.charset);
            }
            else
            {
                if (reqMethod.Equals("GET"))
                {
                    //直接调用DoGet方法请求
                    //body=webUtils .DoGet (this.serverUrl ,txtParams ,this.charset);
                    //拼接get请求的url
                    string tmpUrl = serverUrl;
                    if (txtParams != null && txtParams.Count > 0)
                    {
                        if (tmpUrl.Contains("?"))
                        {
                            tmpUrl = tmpUrl + "&" + WebUtils.BuildQuery(txtParams, charset);
                        }
                        else
                        {
                            tmpUrl = tmpUrl + "?" + WebUtils.BuildQuery(txtParams, charset);
                        }
                    }
                    body = tmpUrl;
                }
                else
                {
                    //直接调用DoPost方法请求
                    // body = webUtils.DoPost(this.serverUrl, txtParams, this.charset);
                    //输出post表单
                    body = BuildHtmlRequest(txtParams, reqMethod, reqMethod);
                }
            }

            T rsp = null;
            IAopParser <T> parser = null;

            if ("xml".Equals(format))
            {
                parser = new AopXmlParser <T>();
                rsp    = parser.Parse(body, charset);
            }
            else
            {
                parser = new AopJsonParser <T>();
                rsp    = parser.Parse(body, charset);
            }

            //验签
            // CheckResponseSign(request, rsp, parser, this.alipayPublicKey, this.charset);
            return(rsp);
        }
 public IDictionary<string, string> GetParameters()
 {
     AopDictionary parameters = new AopDictionary();
     parameters.Add("template_id", this.TemplateId);
     return parameters;
 }
Exemple #17
0
        public IDictionary <string, string> GetParameters()
        {
            AopDictionary parameters = new AopDictionary();

            parameters.Add("alipay_ca_request", this.AlipayCaRequest);
            parameters.Add("body", this.Body);
            parameters.Add("buyer_email", this.BuyerEmail);
            parameters.Add("buyer_id", this.BuyerId);
            parameters.Add("channel_parameters", this.ChannelParameters);
            parameters.Add("currency", this.Currency);
            parameters.Add("dynamic_id", this.DynamicId);
            parameters.Add("dynamic_id_type", this.DynamicIdType);
            parameters.Add("extend_params", this.ExtendParams);
            parameters.Add("format_type", this.FormatType);
            parameters.Add("goods_detail", this.GoodsDetail);
            parameters.Add("it_b_pay", this.ItBPay);
            parameters.Add("mcard_parameters", this.McardParameters);
            parameters.Add("operator_id", this.OperatorId);
            parameters.Add("operator_type", this.OperatorType);
            parameters.Add("out_trade_no", this.OutTradeNo);
            parameters.Add("price", this.Price);
            parameters.Add("quantity", this.Quantity);
            parameters.Add("ref_ids", this.RefIds);
            parameters.Add("royalty_parameters", this.RoyaltyParameters);
            parameters.Add("royalty_type", this.RoyaltyType);
            parameters.Add("seller_email", this.SellerEmail);
            parameters.Add("seller_id", this.SellerId);
            parameters.Add("show_url", this.ShowUrl);
            parameters.Add("subject", this.Subject);
            parameters.Add("total_fee", this.TotalFee);
            return(parameters);
        }
Exemple #18
0
 public IDictionary<string, string> GetParameters()
 {
     AopDictionary parameters = new AopDictionary();
     parameters.Add("biz_content", this.BizContent);
     return parameters;
 }
        public IDictionary <string, string> GetParameters()
        {
            AopDictionary parameters = new AopDictionary();

            parameters.Add("bank_bill_no", this.BankBillNo);
            parameters.Add("bill_date", this.BillDate);
            parameters.Add("bill_key", this.BillKey);
            parameters.Add("charge_inst", this.ChargeInst);
            parameters.Add("extend_field", this.ExtendField);
            parameters.Add("merchant_order_no", this.MerchantOrderNo);
            parameters.Add("mobile", this.Mobile);
            parameters.Add("order_type", this.OrderType);
            parameters.Add("owner_name", this.OwnerName);
            parameters.Add("pay_amount", this.PayAmount);
            parameters.Add("service_amount", this.ServiceAmount);
            parameters.Add("sub_order_type", this.SubOrderType);
            parameters.Add("traffic_location", this.TrafficLocation);
            parameters.Add("traffic_regulations", this.TrafficRegulations);
            return(parameters);
        }