Exemplo n.º 1
0
        public void GetBankBin()
        {
            ResultModel result = new ResultModel();
            Dictionary <String, String> bankPath = new Dictionary <String, String>();

            bankPath.Add("01020000", "3");  // 中国工商银行
            bankPath.Add("01030000", "5");  // 中国农业银行
            bankPath.Add("01040000", "2");  // 中国银行
            bankPath.Add("01050000", "4");  // 中国建设银行
            bankPath.Add("03100000", "7");  // 浦发银行
            bankPath.Add("01000000", "16"); // 中国邮政银行
            //bankPath.Add("03040000", "16"); // 华夏银行
            bankPath.Add("03050000", "8");  // 民生银行
            bankPath.Add("03060000", "14"); // 广东发展银行
            bankPath.Add("03070000", "15"); // 平安银行
            bankPath.Add("03030000", "10"); // 光大银行
            bankPath.Add("03080000", "1");  // 招商银行
            bankPath.Add("03090000", "9");  // 兴业银行
            bankPath.Add("03020000", "13"); // 中信银行
            bankPath.Add("03010000", "6");  // 交通银行
            bankPath.Add("04031000", "12"); // 北京银行

            string strCardNo = Context.Request["CardNo"];
            Guid   userId    = WebUserAuth.UserId.Value;

            if (string.IsNullOrEmpty(strCardNo))
            {
                result.status = 2;
                result.msg    = "卡号不能为空";
            }
            SortedDictionary <string, string> sParaTemp = new SortedDictionary <string, string>();
            //var id = Guid.Parse("E27798C9-9301-4176-AC0B-6F3916F389EA");
            //var webSetting = db.WebSetting.FirstOrDefault(x => x.Id == id);
            var    webSetting    = new WebSettingBLL().GetWebSettingInfo("E27798C9-9301-4176-AC0B-6F3916F389EA");
            var    partnerConfig = new PartnerConfig(webSetting.Param1Value, webSetting.Param2Value, webSetting.Param3Value, webSetting.Param4Value);
            string timestamp     = PaymentUtil.GetCurrentDateTimeStr();

            //基本请求参数
            sParaTemp.Add("oid_partner", partnerConfig.OidPartner);
            sParaTemp.Add("sign_type", "RSA");

            //业务参数
            sParaTemp.Add("card_no", strCardNo); //卡号

            //加签
            string sign = PaymentUtil.AddSign(sParaTemp, partnerConfig.TraderPriKey, partnerConfig.MD5Key);

            sParaTemp.Add("sign", sign);

            var reqJson = PaymentUtil.DictToJson(sParaTemp);

            //LogEnum.Batchwithdraw.WriteLog("连连银行卡卡BIN查询-请求报文", "[" + reqJson + "]");
            string responseJSON = postJson("https://yintong.com.cn/traderapi/bankcardquery.htm", reqJson);
            //LogEnum.Batchwithdraw.WriteLog("连连银行卡卡BIN查询-响应报文", "[" + responseJSON + "]");

            SortedDictionary <string, string> sArray = JsonConvert.DeserializeObject <SortedDictionary <string, string> >(responseJSON);

            if (sArray.Count > 0)
            {
                //查询成功
                if (sArray["ret_code"].ToString().Trim() == "0000")
                {
                    string strBankCode = sArray["bank_code"].ToString().Trim();
                    string strBandPath;

                    if (!bankPath.ContainsKey(strBankCode))
                    {
                        strBandPath = "9999";
                    }
                    else
                    {
                        strBandPath = bankPath[strBankCode];
                    }

                    BankBin bankBin = new BankBin();
                    bankBin.card_no    = strCardNo;
                    bankBin.bank_code  = strBandPath;
                    bankBin.bank_name  = sArray["bank_name"].ToString().Trim();
                    bankBin.card_type  = sArray["card_type"].ToString().Trim();
                    bankBin.card_bound = BankNoExists(strCardNo, userId) ? "true" : "false";
                    result.status      = 1;
                    result.msg         = "查询成功";
                    result.model       = bankBin;
                }
                else
                {
                    result.status = 0;
                    result.msg    = "查询信息失败,连连返回错误号:" + sArray["ret_code"].ToString().Trim() + ",错误信息:" + sArray["ret_msg"].ToString().Trim();
                }
            }
            else
            {
                result.status = -1;
                result.msg    = "未查询到信息";
            }

            var sbq = GetSupportBank();

            if (sbq == null)
            {
                result.status = -2;
                result.msg    = "手机支付不支持该卡";
            }

            IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();

            timeConverter.DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss";
            string resultJson = Newtonsoft.Json.JsonConvert.SerializeObject(result, timeConverter);

            Context.Response.Write(resultJson);
        }
Exemplo n.º 2
0
        protected SortedDictionary <string, string> getBaseParamDict()
        {
            if (WebUserAuth.UserId != Guid.Empty)
            {
                userid = WebUserAuth.UserId.Value;
            }
            else
            {
                Response.Redirect("~/user/login.aspx");
                return(null);
            }

            /**订单信息**/
            // 商户唯一订单号
            string no_order = "" + Request.QueryString["orderno"];
            // 商户订单时间
            string dt_order = PaymentUtil.GetCurrentDateTimeStr();

            AccountRechareInfo rechargemodel = getAccountRechare(no_order);

            if (rechargemodel == null)
            {
                return(null);
            }
            // 交易金额 单位为RMB-元
            string money_order = rechargemodel.Amount.ToString("f2");

            // 商品名称
            string name_goods = "Online Recharge";

            // 订单描述
            string info_order = "Online Recharge";


            //var userInfo = db.UserBasicInfo.FirstOrDefault(x => x.AuditRecordId == userid);
            //if (null == userInfo)
            //{

            //}
            SortedDictionary <string, string> sParaTemp = new SortedDictionary <string, string>();

            try
            {
                UserBLL bll = new UserBLL();
                userInfo = bll.GetUserBasicInfoModelById(userid);
                //从UserBasicInfo表获取银行卡号
                if (string.IsNullOrEmpty(userInfo.BankAccountNo))
                {
                    string            sql  = @"SELECT BankAccountNo as BankNo FROM UserBasicInfo WITH(NOLOCK) WHERE Id = @UserId ";
                    DynamicParameters para = new DynamicParameters();
                    para.Add("@UserId", userid);
                    userInfo.BankAccountNo = PublicConn.QuerySingle <string>(sql, ref para);
                }
                /** 商户提交参数**/
                string version     = partnerConfig.Version;             //接口版本号
                string oid_partner = partnerConfig.OidPartner;          //商户编号
                user_id = userid.ToString();                            //用户ID
                string sign_type    = partnerConfig.SignType;           //签名类型:RSA/MD5
                string busi_partner = partnerConfig.BusiPartner;        //业务类型 虚拟商品销售
                // string notify_url = ConfigurationManager.AppSettings["WebUrl"] + "/PaymentPlatform/lianlian/notify_url.aspx";//接收异步通知地
                string notify_url = "https://www.tuandai.com/PaymentPlatform/lianlian/notify_url.aspx";

                string url_return = ConfigurationManager.AppSettings["WebUrl"] + "/PaymentPlatform/lianlian/urlReturn.aspx"; //支付结束后返回地址

                string userreq_ip = PaymentUtil.LocalIPAddress();                                                            //IP *
                //string url_order = "";
                string valid_order = "10080";                                                                                // 订单有效期 单位分钟,可以为空,默认7天
                string timestamp   = PaymentUtil.GetCurrentDateTimeStr();                                                    //时间戳
                //string idType = "0"; //证件类型
                string idNo = userInfo.IdentityCard;                                                                         //"623026199206016992";
                acctName = userInfo.RealName;                                                                                //"彭思微";
                telno    = userInfo.TelNo;



                sParaTemp.Add("app_request", "3");
                sParaTemp.Add("bg_color", "d93f3f");
                sParaTemp.Add("busi_partner", busi_partner);
                sParaTemp.Add("card_no", userInfo.BankAccountNo);
                sParaTemp.Add("dt_order", dt_order);
                sParaTemp.Add("id_no", idNo);
                sParaTemp.Add("info_order", info_order);
                sParaTemp.Add("money_order", money_order);
                sParaTemp.Add("name_goods", name_goods);
                //sParaTemp.Add("no_agree", "");
                sParaTemp.Add("no_order", no_order);
                sParaTemp.Add("notify_url", notify_url);
                sParaTemp.Add("oid_partner", oid_partner);
                sParaTemp.Add("acct_name", acctName);
                sParaTemp.Add("risk_item", createRiskItem(userid, acctName, idNo, userInfo.TelNo, userInfo.AddDate.Value.ToString("yyyyMMddHHmmss")));
                //    sParaTemp.Add("risk_item", createRiskItemOld(user_id, acctName));
                sParaTemp.Add("sign_type", sign_type);
                sParaTemp.Add("url_return", url_return);
                sParaTemp.Add("user_id", telno);
                sParaTemp.Add("valid_order", valid_order);

                NetLog.WriteBatchwithdrawHandler("连连充值请求", string.Concat("签名方式", sign_type, "订单号:", no_order, ",用户编号:", user_id, "充值金额", money_order, "IP地址", userreq_ip), "触屏版");
                //LogHelper.WriteLog("连连充值请求", "", string.Concat("签名方式", sign_type, "订单号:", no_order, ",用户编号:", user_id, "充值金额", money_order, "IP地址", userreq_ip));
            }
            catch (Exception ex)
            {
                string errormessage = "内部错误:" + ex.InnerException + "\r\n堆栈:" + ex.StackTrace + "\r\n信息:" + ex.Message + "\r\n来源:" + ex.Source;
                //LogTextHelper.Instance.AddLog(errormessage);
                TuanDai.LogSystem.LogClient.LogClients.ErrorLog("WXTouch", "连连充值请求", "", errormessage);
            }
            return(sParaTemp);
        }