/// <summary> /// 判断是否重复配置同类型支付信息 /// </summary> public void CheckCustomerMapping(string paymentTypeId) { var loggingSessionInfo = new SessionManager().CurrentUserLoginInfo; var tPaymentTypeCustomerMappingBll = new TPaymentTypeCustomerMappingBLL(loggingSessionInfo); var tPaymentTypeBll = new T_Payment_TypeBLL(loggingSessionInfo); //查询参数 List <IWhereCondition> complexCondition = new List <IWhereCondition> { }; //商户条件 //complexCondition.Add(new EqualsCondition() { FieldName = "customerid", Value = loggingSessionInfo.ClientID }); complexCondition.Add(new DirectCondition("Payment_Type_Code in ('CCAlipayWap','AlipayWap')")); var paymentTypeList = tPaymentTypeBll.Query(complexCondition.ToArray(), null); //支付宝支付和平台支付宝支付配置信息 var currentPaymentTypeInfo = tPaymentTypeBll.GetByID(paymentTypeId); //当前支付方式信息 foreach (var paymentType in paymentTypeList) { var ptCustomerMapping = tPaymentTypeCustomerMappingBll.QueryByEntity(new TPaymentTypeCustomerMappingEntity() { CustomerId = loggingSessionInfo.ClientID, PaymentTypeID = paymentType.Payment_Type_Id }, null).FirstOrDefault(); if (ptCustomerMapping != null && ptCustomerMapping.PaymentTypeID != paymentTypeId && currentPaymentTypeInfo.Payment_Type_Code != "WXJS" && currentPaymentTypeInfo.Payment_Type_Code != "GetToPay") { throw new APIException("同类型的支付方式只能启用一个.") { ErrorCode = 121 } } ; } }
public string GetMapingbyPayMentTypeId(HttpRequest requst) { string paymentTypeId = requst.Form["paymentTypeId"]; if (string.IsNullOrWhiteSpace(paymentTypeId)) { paymentTypeId = requst.QueryString["paymentTypeId"].ToString(); } TPaymentTypeCustomerMappingBLL server = new TPaymentTypeCustomerMappingBLL(this.CurrentUserInfo); TPaymentTypeCustomerMappingEntity entity = new TPaymentTypeCustomerMappingEntity(); entity.IsDelete = 0; entity.PaymentTypeID = paymentTypeId; entity.CustomerId = this.CurrentUserInfo.ClientID; TPaymentTypeCustomerMappingEntity[] entitylist = server.QueryByEntity(entity, null); if (entitylist != null && entitylist.Length > 0) { entitylist[0].url = ConfigurationManager.AppSettings["payMentUrl"]; return(entitylist[0].ToJSON()); } else { entity.url = ConfigurationManager.AppSettings["payMentUrl"]; return(entity.ToJSON()); } return(""); }
protected override SetRewardOrderRD ProcessRequest(DTO.Base.APIRequest <SetRewardOrderRP> pRequest) { var rd = new SetRewardOrderRD(); string customerId = CurrentUserInfo.ClientID; var trrBll = new T_RewardRecordBLL(CurrentUserInfo); var tptcmBll = new TPaymentTypeCustomerMappingBLL(CurrentUserInfo); var employeeId = pRequest.Parameters.EmployeeID;//员工ID var rewardAmount = pRequest.Parameters.RewardAmount; if (string.IsNullOrEmpty(employeeId)) { throw new APIException("员工ID无效") { ErrorCode = 121 }; } //生成打赏单 var trrEntity = new T_RewardRecordEntity() { RewardId = Guid.NewGuid(), //RewardCode = "哪来的?", RewardOPType = 1, //会员(打赏人) RewardOP = pRequest.UserID, //会员ID RewardedOPType = 2, //员工(被打赏人) RewardedOP = employeeId, RewardAmount = rewardAmount, //Remark = string.Empty, PayStatus = 0, //默认未支付,等待支付回调接口来修改 RewardType = 1, //1=现金,2=积分 CustomerId = customerId }; trrBll.Create(trrEntity);//创建打赏单 rd.RewardOrderID = "REWARD|" + trrEntity.RewardId; var tptcmEntity = tptcmBll.QueryByEntity(new TPaymentTypeCustomerMappingEntity() { PaymentTypeID = "DFD3E26D5C784BBC86B075090617F44B", CustomerId = customerId }, null).FirstOrDefault(); rd.paymentId = tptcmEntity != null ? tptcmEntity.PaymentTypeID : string.Empty; return(rd); }
/// <summary> /// 设置商户自己的支付方式 /// </summary> /// <param name="pRequest"></param> /// <returns></returns> public string SetPayChannel(string pRequest) { var rp = pRequest.DeserializeJSONTo <APIRequest <SetPayChannel> >(); if (rp.Parameters.AddPayChannelData.Length == 0) { throw new APIException("请求参数中缺少AddPayChannelData或值为空.") { ErrorCode = 121 }; } var paymentTypeId = rp.Parameters.AddPayChannelData[0].PaymentTypeId; CheckCustomerMapping(paymentTypeId);//判断是否重复配置同类型支付信息 var loggingSessionInfo = new SessionManager().CurrentUserLoginInfo; var tPaymentTypeCustomerMappingBll = new TPaymentTypeCustomerMappingBLL(loggingSessionInfo); var customerId = loggingSessionInfo.ClientID; //获取该支付通道的信息 var tPaymeentTypeCusMapEntity = tPaymentTypeCustomerMappingBll.QueryByEntity(new TPaymentTypeCustomerMappingEntity() { ChannelId = Convert.ToString(rp.Parameters.AddPayChannelData[0].ChannelId), CustomerId = customerId }, null); //if (tPaymeentTypeCusMapEntity != null && tPaymeentTypeCusMapEntity.Length > 0) //{ // var payDeloyType = tPaymeentTypeCusMapEntity[0].PayDeplyType; // //如果该支付通道之前为默认配置,将channelId设置为0,这样支付中心会生成一条新的数据 // if (payDeloyType == 0) // { // rp.Parameters.AddPayChannelData[0].ChannelId = 0; // } //} var tPaymentTypeCustomerMappingEntityList = tPaymentTypeCustomerMappingBll.QueryByEntity(new TPaymentTypeCustomerMappingEntity() { PaymentTypeID = rp.Parameters.AddPayChannelData[0].PaymentTypeId, CustomerId = customerId }, null); if (rp.Parameters.AddPayChannelData[0].PayType > 0) //非货到付款 { var paychannelUrl = ConfigurationManager.AppSettings["payChannelUrl"]; string reqs = "request" + pRequest; string str = "{\"ClientID\":\"" + loggingSessionInfo.ClientID + "\"," + "\"UserID\":\"" + loggingSessionInfo.UserID + "\"," + "\"Token\":null,\"AppID\":1," + "\"Parameters\":" + rp.Parameters.ToJSON() + "}"; var result = HttpWebClient.DoHttpRequest(paychannelUrl + "Gateway.ashx?action=SetPayChannel", "request=" + HttpUtility.UrlEncode(str)); string loggerStr = paychannelUrl + "Gateway.ashx?action=SetPayChannel&" + str; Loggers.Debug(new DebugLogInfo() { Message = loggerStr }); var channelList = result.DeserializeJSONTo <PayChannelReturnResult>(); if (channelList.Datas == null) { throw new APIException("创建失败:" + result) { ErrorCode = 122 }; } if (channelList.Datas.PayChannelIdList[0].ChannelId == 0) { throw new APIException("创建失败:" + result) { ErrorCode = 122 }; } else { if (tPaymentTypeCustomerMappingEntityList != null && tPaymentTypeCustomerMappingEntityList.Length > 0) { tPaymentTypeCustomerMappingBll.Delete(tPaymentTypeCustomerMappingEntityList); } var tPaymentTypeCustomerMappingEntity = new TPaymentTypeCustomerMappingEntity(); tPaymentTypeCustomerMappingEntity.MappingId = Guid.NewGuid(); tPaymentTypeCustomerMappingEntity.CustomerId = loggingSessionInfo.ClientID; tPaymentTypeCustomerMappingEntity.PaymentTypeID = rp.Parameters.AddPayChannelData[0].PaymentTypeId; tPaymentTypeCustomerMappingEntity.APPId = "1"; tPaymentTypeCustomerMappingEntity.Currency = 1; tPaymentTypeCustomerMappingEntity.PayDeplyType = 1; tPaymentTypeCustomerMappingBll.Create(tPaymentTypeCustomerMappingEntity); var payTypeId = rp.Parameters.AddPayChannelData[0].PayType; var updateSql = ""; if (payTypeId == 1 || payTypeId == 2) { var unionPayData = rp.Parameters.AddPayChannelData[0].UnionPayData; var merchantId = unionPayData.MerchantID; var certificateFilePath = unionPayData.CertificateFilePath; var certificateFilePassword = unionPayData.CertificateFilePassword; var decryptCertificateFilePath = unionPayData.DecryptCertificateFilePath; var packetEncryptKey = unionPayData.PacketEncryptKey; updateSql = "PayAccountNumber = '" + merchantId + "'," + "EncryptionCertificate = '" + certificateFilePath + "'," + "EncryptionPwd ='" + certificateFilePassword + "'," + "DecryptionCertificate ='" + decryptCertificateFilePath + "'," + "DecryptionPwd ='" + packetEncryptKey + "'," + "PayDeplyType=1"; } if (payTypeId == 3 || payTypeId == 4) { var wapData = rp.Parameters.AddPayChannelData[0].WapData; var partner = wapData.Partner; var sellerAccountName = wapData.SellerAccountName; var RSA_PublicKey = wapData.RSA_PublicKey; var RSA_PrivateKey = wapData.RSA_PrivateKey; var MD5Key = wapData.MD5Key; var SCAN_AppID = wapData.SCAN_AppID; var PayEncryptedPwd = wapData.PayEncryptedPwd; updateSql = "PayAccountNumber ='" + partner + "'," + "PayAccounPublic='" + RSA_PublicKey + "'," + "PayPrivate='" + RSA_PrivateKey + "'," + "SalesTBAccess='" + sellerAccountName + "'," + "ApplyMD5Key='" + MD5Key + "'," + "EncryptionCertificate='" + SCAN_AppID + "'," + "PayEncryptedPwd='" + PayEncryptedPwd + "'," + "PayDeplyType=1"; } if (payTypeId == 5 || payTypeId == 6) { var wxData = rp.Parameters.AddPayChannelData[0].WxPayData; var appID = wxData.AppID; //var appSecret = wxData.AppSecret; //var parnterID = wxData.ParnterID; //var parnterKey = wxData.ParnterKey; //var PaySignKey = wxData.PaySignKey; var mch_id = wxData.Mch_ID; var signKey = wxData.SignKey; updateSql = "AccountIdentity='" + appID + "'," //+ "PublicKey='" + appSecret + "'," //+ "TenPayIdentity='" + parnterID + "'," //+ "TenPayKey='" + parnterKey + "'," //+ "PayEncryptedPwd='" + PaySignKey + "'," + "TenPayIdentity='" + mch_id + "'," + "TenPayKey='" + signKey + "'," + "PayDeplyType=1"; } tPaymentTypeCustomerMappingBll.UpdatePaymentMap(updateSql, channelList.Datas.PayChannelIdList[0].ChannelId + 1 , rp.Parameters.AddPayChannelData[0].PaymentTypeId, customerId); } } else //货到付款 { if (tPaymentTypeCustomerMappingEntityList != null && tPaymentTypeCustomerMappingEntityList.Length > 0) { tPaymentTypeCustomerMappingBll.Delete(tPaymentTypeCustomerMappingEntityList); } var tPaymentTypeCustomerMappingEntity = new TPaymentTypeCustomerMappingEntity(); tPaymentTypeCustomerMappingEntity.MappingId = Guid.NewGuid(); tPaymentTypeCustomerMappingEntity.CustomerId = loggingSessionInfo.ClientID; tPaymentTypeCustomerMappingEntity.PaymentTypeID = rp.Parameters.AddPayChannelData[0].PaymentTypeId; tPaymentTypeCustomerMappingEntity.APPId = "1"; tPaymentTypeCustomerMappingEntity.Currency = 1; tPaymentTypeCustomerMappingEntity.PayDeplyType = 1; tPaymentTypeCustomerMappingBll.Create(tPaymentTypeCustomerMappingEntity); } var rd = new EmptyResponseData(); var rsp = new SuccessResponse <IAPIResponseData>(rd); return(rsp.ToJSON()); }
/// <summary> /// 启用连锁掌柜默认的支付方式 /// </summary> /// <param name="pRequest"></param> /// <returns></returns> public string SetDefaultPayChannel(string pRequest) { var rp = pRequest.DeserializeJSONTo <APIRequest <SetPayChannel> >(); if (rp.Parameters.AddPayChannelData.Length == 0) { throw new APIException("请求参数中缺少AddPayChannelData或值为空.") { ErrorCode = 121 }; } var paymentTypeId = rp.Parameters.AddPayChannelData[0].PaymentTypeId; CheckCustomerMapping(paymentTypeId);//判断是否重复配置同类型支付信息 var loggingSessionInfo = new SessionManager().CurrentUserLoginInfo; var tPaymentTypeCustomerMappingBll = new TPaymentTypeCustomerMappingBLL(loggingSessionInfo); var customerId = loggingSessionInfo.ClientID; //获取要修改的支付方式 var tPaymentTypeCustomerMappingEntityList = tPaymentTypeCustomerMappingBll.QueryByEntity(new TPaymentTypeCustomerMappingEntity() { PaymentTypeID = rp.Parameters.AddPayChannelData[0].PaymentTypeId, CustomerId = customerId }, null); //从ap库里面获取该支付方式的channelID var channelId = tPaymentTypeCustomerMappingBll.GetChannelIdByPaymentTypeAndCustomer(paymentTypeId, customerId); if (channelId == "-1") { throw new APIException("未找到默认的支付通道.") { ErrorCode = 122 }; } else { //逻辑删除原有配置 if (tPaymentTypeCustomerMappingEntityList != null && tPaymentTypeCustomerMappingEntityList.Length > 0) { tPaymentTypeCustomerMappingBll.Delete(tPaymentTypeCustomerMappingEntityList); } //重新启用 var tPaymentTypeCustomerMappingEntity = new TPaymentTypeCustomerMappingEntity(); tPaymentTypeCustomerMappingEntity.MappingId = Guid.NewGuid(); tPaymentTypeCustomerMappingEntity.PaymentTypeID = paymentTypeId; tPaymentTypeCustomerMappingEntity.CustomerId = customerId; tPaymentTypeCustomerMappingEntity.ChannelId = channelId; tPaymentTypeCustomerMappingEntity.APPId = "1"; tPaymentTypeCustomerMappingEntity.Currency = 1; tPaymentTypeCustomerMappingEntity.PayDeplyType = 0; tPaymentTypeCustomerMappingBll.Create(tPaymentTypeCustomerMappingEntity); //设置默认的channelID数据,不需要设置 //string updateSql = " PayDeplyType=0 "; //tPaymentTypeCustomerMappingBll.UpdatePaymentMap(updateSql, Convert.ToInt32(channelId) // , paymentTypeId, customerId); } var rd = new EmptyResponseData(); var rsp = new SuccessResponse <IAPIResponseData>(rd); return(rsp.ToJSON()); }