public MerchantPortalResponse <T> Execute <T>(MerchantPortalRequest request) { try { //拼接请求地址 string url = string.Format("{0}/AccessGateway/transIn/{1}.json", this.ApiUrl, request.FuncName); //获取参数 var parameters = GetParameters(request); //进行网络请求 var agResponse = Httputil.Post <AGResponse>(url, parameters); // 解密 if (!string.IsNullOrEmpty(agResponse.EncryptBody)) { string body = CmblifeUtils.Decrypt(agResponse.EncryptBody, this.MerchantPrivateKey); var response = JsonConvert.DeserializeObject <MerchantPortalResponse <T> >(body); return(response); } else { return(MerchantPortalResponse <T> .Custom(agResponse.respCode, agResponse.respMsg)); } } catch (Exception ex) { throw ex; } }
/// <summary> /// 获取招行订单详情 /// </summary> /// <param name="cmbOrderNo"></param> /// <returns></returns> public string GetOrderDetail(string cmbOrderNo) { //1.创建客户端(传入请求地址(默认可不传),mid,aid,商户私钥等参数) IMerchantPortalApiClient client = new DefaultMerchantPortalApiClient( _configuration.GetSection("Zhaohang")["API_URL"], _configuration.GetSection("Zhaohang")["MID"], _configuration.GetSection("Zhaohang")["AID"], _configuration.GetSection("Zhaohang")["CMBLIFE_XML_PUB_KEY"], _configuration.GetSection("Zhaohang")["MERCHANT_XML_PRI_KEY"]); //2.添加参数 var request = new MerchantPortalRequest(); //2.1 添加要请求的方法名 request.FuncName = "funmallGetOrderBySysNo"; //2.2 添加业务参数 var businessParamsDic = new Dictionary <string, object>(); businessParamsDic.Add("merchantNo", _configuration.GetSection("Zhaohang")["merchantNo"]); // 正式商户编号 businessParamsDic.Add("storeNo", _configuration.GetSection("Zhaohang")["storeNo"]); //正式店铺号 businessParamsDic.Add("orderNo", cmbOrderNo); //请求参数包含业务参数 request.BusinessParams = businessParamsDic; //3. 执行 MerchantPortalResponse <object> response = client.Execute <object>(request); return(JsonConvert.SerializeObject(response)); }
/// <summary> /// 获取全部未发货订单 /// </summary> /// <returns></returns> public string GetAllOrderList(DateTime?startTime = null, DateTime?endTime = null) { string starttime, endtime; if (!startTime.HasValue) { starttime = DateTime.Now.AddDays(-15).ToString("yyyyMMddHHmmss"); } else { starttime = DateTime.Parse(((DateTime)startTime).ToString()).ToString("yyyyMMddHHmmss"); } if (!endTime.HasValue) { endtime = DateTime.Now.AddDays(1).AddSeconds(-1).ToString("yyyyMMddHHmmss"); } else { endtime = DateTime.Parse(((DateTime)endTime).ToString()).AddDays(1).AddSeconds(-1).ToString("yyyyMMddHHmmss"); } //1.创建客户端(传入请求地址(默认可不传),mid,aid,商户私钥等参数) IMerchantPortalApiClient client = new DefaultMerchantPortalApiClient( _configuration.GetSection("Zhaohang")["API_URL"], _configuration.GetSection("Zhaohang")["MID"], _configuration.GetSection("Zhaohang")["AID"], _configuration.GetSection("Zhaohang")["CMBLIFE_XML_PUB_KEY"], _configuration.GetSection("Zhaohang")["MERCHANT_XML_PRI_KEY"]); //2.添加参数 var request = new MerchantPortalRequest(); //2.1 添加要请求的方法名 request.FuncName = "funmallGetOrderList"; //2.2 添加业务参数 var businessParamsDic = new Dictionary <string, object>(); businessParamsDic.Add("merchantNo", _configuration.GetSection("Zhaohang")["merchantNo"]); //正式商户编号 businessParamsDic.Add("storeNo", _configuration.GetSection("Zhaohang")["storeNo"]); //正式店铺号 businessParamsDic.Add("pageSize", 50); businessParamsDic.Add("startTime", starttime); businessParamsDic.Add("endTime", endtime); //测试数据 //businessParamsDic.Add("rmaSysNo", 193497238872420352); //businessParamsDic.Add("merchantNo", "mer20473"); //businessParamsDic.Add("storeNo", "ST20313"); //请求参数包含业务参数 request.BusinessParams = businessParamsDic; //3. 执行 MerchantPortalResponse <object> response = client.Execute <object>(request); return(JsonConvert.SerializeObject(response)); }
/// <summary> /// 上传快递信息到招行系统(请在ReturnDeliverResultToCMB中调用) /// </summary> /// <param name="orderItemNo">cmb订单号</param> /// <param name="orderNo">cmb子订单号</param> /// <param name="deliveryType">快递名称</param> /// <param name="deliverName">快递中文名</param> /// <param name="deliverNo">快递单号</param> /// <returns></returns> public string UpLoadDeliverInfo(string orderItemNo, string orderNo, string deliveryType, string deliverName, string deliverNo) { //1.创建客户端(传入请求地址(默认可不传),mid,aid,商户私钥等参数) IMerchantPortalApiClient client = new DefaultMerchantPortalApiClient( _configuration.GetSection("Zhaohang")["API_URL"], _configuration.GetSection("Zhaohang")["MID"], _configuration.GetSection("Zhaohang")["AID"], _configuration.GetSection("Zhaohang")["CMBLIFE_XML_PUB_KEY"], _configuration.GetSection("Zhaohang")["MERCHANT_XML_PRI_KEY"]); //2.添加参数 var request = new MerchantPortalRequest(); //2.1 添加要请求的方法名 request.FuncName = "funmallUploadLogisticsByItem"; //2.2 添加业务参数 var businessParamsDic = new Dictionary <string, object>(); businessParamsDic.Add("merchantNo", _configuration.GetSection("Zhaohang")["merchantNo"]); //正式商户编号 businessParamsDic.Add("storeNo", _configuration.GetSection("Zhaohang")["storeNo"]); //正式店铺号 //快递信息 var deliveryInfo = new Dictionary <string, object>(); deliveryInfo.Add("orderItemNo", orderItemNo); //子订单编号 deliveryInfo.Add("orderNo", orderNo); //订单编号 var deliver = new Dictionary <string, object>(); deliver.Add("shipTypeId", deliveryType); //快递类型 deliver.Add("shipTypeName", deliverName); //快递名称 deliver.Add("trackingNo", deliverNo); //快递单号 deliveryInfo.Add("logisticsInfoList", deliver); //需上传物流信息列表 businessParamsDic.Add("items", deliveryInfo); //请求参数包含业务参数 request.BusinessParams = businessParamsDic; //3. 执行 MerchantPortalResponse <object> response = client.Execute <object>(request); return(JsonConvert.SerializeObject(response)); }