/// <summary>
        /// 删除信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnDelete_Click(object sender, RoutedEventArgs e)
        {
            //获取鼠标选择的索引
            int num = dgUsers.SelectedIndex;

            if (num < 0)
            {
                MessageBox.Show("请选择要删除的行!");
            }
            else
            {
                //获取选中行
                PayData user = (PayData)dgUsers.SelectedValue;
                if (MessageBox.Show("是否删除" + user.Name + "的信息", "提示", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                {
                    //删除数据
                    if (bll.Delete(user.ID, 0))
                    {
                        MessageBox.Show("删除" + user.Name.Trim() + "成功");
                    }
                }
                //加载数据
                LoadData();
            }
        }
Beispiel #2
0
        public static void Run()
        {
            // 1固定参数
            PayData postmap = new PayData();    // 请求参数的map

            postmap.Put("rancode", Helper.GenerateRandom(5));
            postmap.Put("reqtime", DateTime.Now.ToString("yyyyMMddHHmmss"));
            postmap.Put("snNo", PayConfig.SnNo);
            postmap.Put("systemCode", PayConfig.SystemCode);
            postmap.Put("vender", "123456");
            postmap.Put("version", PayConfig.Version);

            // 2签名
            string sign = Helper.MakeSign(postmap.ToUrl(), PayConfig.DefaultKey);

            postmap.Put("sign", sign);
            //return;
            // 3请求、响应
            string rspStr = HttpService.Post(postmap.ToJson(), PayConfig.WebSite + "/merchantpay/trade/login?" + postmap.ToUrl());

            rspStr = rspStr.Replace("/", "");

            var response = JsonSerializeHelper.ToObject <ActivationResponse>(rspStr);

            if (response.ReturnCode == ResultCode.Success)
            {
                //var data = JsonSerializeHelper.ToObject<ActivationDataResponse>(response.Data);
                //var key = DesHelper.Decrypt(data.Key, PayConfig.DefaultKey);
            }
        }
        /// <summary>
        /// 编辑信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnEdit_Click(object sender, RoutedEventArgs e)
        {
            //获取鼠标选择的索引
            int num = dgUsers.SelectedIndex;

            if (num < 0)
            {
                MessageBox.Show("请选择要修改的行!");
            }
            else
            {
                //获取选中行
                PayData user = (PayData)dgUsers.SelectedValue;
                //打开编辑窗口
                EditPayPage editRecord = new EditPayPage();
                editRecord.isAdd = false;
                //设置编号不能编辑
                editRecord.txtID.IsReadOnly = true;
                //绑定数据
                editRecord.gridUser.DataContext = user;

                //显示窗口
                editRecord.ShowDialog();
                LoadData();
            }
        }
Beispiel #4
0
        public static OrderQueryResponse Query(string outTradeNo)
        {
            // 1固定参数
            PayData postmap = new PayData();    // 请求参数的map

            postmap.Put("version", PayConfig.Version);
            postmap.Put("reqtime", DateTime.Now.ToString("yyyyMMddHHmmss"));
            postmap.Put("rancode", Helper.GenerateRandom(5));
            postmap.Put("snNo", PayConfig.SnNo);
            postmap.Put("outTradeNo", outTradeNo);//外部接入系统订单号
            postmap.Put("systemCode", PayConfig.SystemCode);

            // 2签名
            string sign = Helper.MakeSign(postmap.ToUrl());

            postmap.Put("sign", sign);

            // 3请求、响应
            string rspStr = HttpService.Post(postmap.ToJson(), PayConfig.WebSite + "/merchantpay/trade/orderquery?" + postmap.ToUrl());

            var response = JsonSerializeHelper.ToObject <OrderQueryResponse>(rspStr);

            if (response.ReturnCode == ResultCode.Success)
            {
                //签名验证
                Helper.CheckSign(rspStr, response.Sign);
                response.QueryData = JsonSerializeHelper.ToObject <OrderQueryDataResponse>(response.Data);
            }
            return(response);
        }
Beispiel #5
0
        /// <summary>
        /// 添加工资信息
        /// </summary>
        /// <param name="book"></param>
        /// <returns></returns>
        public int AddPay(PayData pay)
        {
            //sql语句
            String sql = "INSERT INTO Table_PayData(ID,Name,BasePay,RealPay,BonusInTotal) VALUES(@ID,@Name,@BasePay,@RealPay,@BonusInTotal)";

            //参数列表
            SqlParameter[] param =
            {
                new SqlParameter("@ID",           SqlDbType.Int),
                new SqlParameter("@Name",         SqlDbType.VarChar),
                new SqlParameter("@BasePay",      SqlDbType.Int),
                new SqlParameter("@RealPay",      SqlDbType.Int),
                new SqlParameter("@BonusInTotal", SqlDbType.Int)
            };

            //参数赋值
            param[0].Value = pay.ID;
            param[1].Value = pay.Name;
            param[2].Value = pay.BasePay;
            param[3].Value = pay.BasePay + pay.BonusInTotal;
            param[4].Value = pay.BonusInTotal;
            SqlDbHelper db = new SqlDbHelper();

            return(db.ExecuteNonQuery(sql, param));
        }
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain;charset=UTF-8";

            string             TraderNo             = context.Request.QueryString["TraderNo"];
            CRequestPayTradeNo newRequestPayTradeNo = new CRequestPayTradeNo();
            PayData            _Data = PayData.Find(TraderNo, PayType.ALI_PAY);

            if (_Data == null)
            {
                newRequestPayTradeNo.code = 1;
                newRequestPayTradeNo.msg  = "未找到此交易定单:" + TraderNo;
            }
            else if (_Data.Status == 0)
            {
                newRequestPayTradeNo.Amount = _Data.Amount;
                newRequestPayTradeNo.code   = 2;
                newRequestPayTradeNo.msg    = "等待支付宝返回结果";
            }
            else
            {
                //                 DataSet ds = FacadeManage.aideTreasureFacade.DataProvider.GetDbHelper().ExecuteDataset(CommandType.Text,
                //                     "select Score from GameScoreInfo where UserID=" + _Data.UserId);
                //                 if (ds.Tables[0].Rows.Count > 0)
                //                 {
                //                     int src = Convert.ToInt32(ds.Tables[0].Rows[0]["Score"]);
                //                     newRequestPayTradeNo.Amount = src;
                //                 }
                newRequestPayTradeNo.Amount = _Data.Amount;
                newRequestPayTradeNo.code   = 0;
                newRequestPayTradeNo.msg    = "";
            }
            context.Response.Write(LitJson.JsonMapper.ToJson(newRequestPayTradeNo));
        }
Beispiel #7
0
        public Result <PayResult> Create(PayData data)
        {
            Result <PayResult> result = new Result <PayResult>();

            result.Msg = "生成支付订单失败";
            if (data != null && !string.IsNullOrWhiteSpace(data.iduser) && !string.IsNullOrWhiteSpace(data.orderno))
            {
                try
                {
                    long _iduser  = long.Parse(data.iduser);
                    long _orderno = long.Parse(data.orderno);
                    using (TCom.EF.TN db = new TCom.EF.TN())
                    {
                        TCom.EF.User u = db.Users.Where(m => m.iduser == _iduser && m.inuse == true).FirstOrDefault();
                        if (u != null)
                        {
                            TCom.EF.MyOrder o = db.MyOrders.Where(m => m.orderno == _orderno && m.inuse == true).FirstOrDefault();
                            if (o != null)
                            {
                                if (o.paystatus == PayStatus.WeiXin_CLOSED)
                                {
                                    o.status = OrderStatus.Close;
                                    db.SaveChanges();
                                    result.Msg = "订单已关闭";
                                }
                                else
                                {
                                    o.paystatus = PayStatus.WaitPay;
                                    if (o.payway != "weixin")
                                    {
                                        o.payway = "weixin";
                                        if (db.SaveChanges() <= 0)
                                        {
                                            result.Msg = "更新支付方式失败";
                                            return(result);
                                        }
                                    }
                                    result.Data = new PayResult
                                    {
                                        order = JsApiPay.PayOrder(o, u)
                                    };
                                    result.Code = R.Ok;
                                }
                            }
                        }
                    }
                }
                catch (Exception)
                {
                    result.Code = R.Error;
                    result.Msg  = "拉取订单出错";
                }
            }
            else
            {
                result.Msg = "不存在该订单";
            }
            return(result);
        }
Beispiel #8
0
 public static void Add(string TradeNo, PayData TradeItem)
 {
     lock (AliPayDatas)
     {
         var key = string.Format("{0}_{1}", TradeItem.PayType, TradeNo);
         AliPayDatas.Add(key, TradeItem);
     }
 }
Beispiel #9
0
        private PayData GetParam2()
        {
            PayData payData = new PayData();

            payData.SetValue("name", "xiaomiao");
            payData.SetValue("password", "1234");
            payData.SetValue("sign", payData.MakeSign("1234444"));
            return(payData);
        }
Beispiel #10
0
 private void Window_Loaded(object sender, RoutedEventArgs e)
 {
     if (isAdd)
     {
         this.Title         = "添加员工";
         this.btnOk.Content = "添加";
         PayData user = new PayData();
         gridUser.DataContext = user;
     }
 }
        private PayData SkapaPaysonPayData(SignMeUpVM SUPVM, Organisation org)
        {
            // We remove port info to help when the site is behind a load balancer/firewall that does port rewrites.
            var scheme = Request.Url.Scheme;
            var host   = Request.Url.Host;

            var returnUrl = Url.Action("Returned", "Payson", new RouteValueDictionary(), scheme, host) + "/" + SUPVM.RegistreringsId;

            var cancelUrl = Url.Action("Cancelled", "Payson", new RouteValueDictionary(), scheme, host) + "/" + SUPVM.RegistreringsId;

            var sender = new Sender(SUPVM.Kontaktinformation.SenderEmail);

            sender.FirstName = SUPVM.Kontaktinformation.SenderFirstName;
            sender.LastName  = SUPVM.Kontaktinformation.SenderLastName;

            var receiver = new Receiver(org.Epost, SUPVM.AttBetala);

            receiver.FirstName = org.Namn;
            receiver.SetPrimaryReceiver(true);

            var payData = new PayData(returnUrl,
                                      cancelUrl,
                                      smuService.HamtaEvenemang(SUPVM.EvenemangsId).Namn + " - " + SUPVM.GetFaltvarde("Lagnamn"),
                                      sender,
                                      new List <Receiver> {
                receiver
            });

            // Set IPN callback URL
            // When the shop is hosted by Payson the IPN scheme must be http and not https
            var ipnNotificationUrl = Url.Action("IPN", "Payson", new RouteValueDictionary(), scheme, host) + "/" + SUPVM.RegistreringsId;

            payData.SetIpnNotificationUrl(ipnNotificationUrl);

            payData.SetFundingConstraints(new List <FundingConstraint> {
                FundingConstraint.Bank, FundingConstraint.CreditCard
            });
            payData.SetTrackingId(SUPVM.RegistreringsId.ToString());

            // Skapa poster för betalning
            var orderItems = new List <PaysonIntegration.Utils.OrderItem>();

            foreach (ValViewModel post in SUPVM.Betalnignsposter)
            {
                var oi = new PaysonIntegration.Utils.OrderItem(post.TypNamn + ": " + post.Namn);
                oi.SetOptionalParameters("st", 1, post.Avgift, 0);
                orderItems.Add(oi);
            }

            payData.SetOrderItems(orderItems);

            return(payData);
        }
    void OpenThirdPayUI(PayData data)
    {
        string strJson = string.Empty;

                #if QiHo360
        strJson = generateQihoo(data);
                #elif Spade
        strJson = generateSpade(data);
                #elif Google
//		strJson = generateGoogle(data);
                #endif

        Native.mInstace.m_thridParty.Pay(strJson);
    }
Beispiel #13
0
        private PayData DataRowToPay(DataRow dr)
        {
            PayData pay = new PayData();

            pay.ID   = Convert.ToInt32(dr["ID"]);
            pay.Name = Convert.ToString(dr["Name"]);
            if (!DBNull.Value.Equals(pay.BasePay))
            {
                pay.BasePay = Convert.ToInt32(dr["BasePay"]);
            }
            pay.RealPay = Convert.ToInt32(dr["RealPay"]);


            return(pay);
        }
Beispiel #14
0
        public JsonResult PostUrl2()
        {
            string url        = "api/v1/checksign";
            string baseApiUrl = "http://localhost:172";
            var    client     = new RestClient(baseApiUrl);
            var    request    = new RestRequest(url, Method.POST);

            request.RequestFormat = DataFormat.Json;
            PayData payData = GetParam2();

            request.AddBody(payData);
            IRestResponse response = client.Execute(request);
            string        content  = response.Content;

            return(Json(new { Data = content }, JsonRequestBehavior.AllowGet));
        }
    string generateSpade(PayData data)
    {
        HTPayInfo   info = new HTPayInfo();
        AccountData ad   = Native.mInstace.m_thridParty.GetAccountData();

        info.price       = m_data.Price;
        info.count       = 1;
        info.productId   = m_data.ID.ToString();
        info.productName = string.IsNullOrEmpty(m_data.SpadeName) ? " " : m_data.SpadeName;
        info.productDes  = string.IsNullOrEmpty(m_data.SpadeDes) ? " " : m_data.SpadeDes;
        info.serverId    = "";
        info.url         = ad.payCallback;
        info.appOrderId  = data.orderId;
        info.isPayMonth  = m_data.Type == 0;

        return(fastJSON.JSON.Instance.ToJSON(info));
    }
Beispiel #16
0
 public IHttpActionResult AddTarget([FromBody] PayData data)
 {
     if (data == null)
     {
         //Bad request code 400
         return(BadRequest());
     }
     if (reservationLogic.AddTarget(data))
     {
         //petición correcta y se ha creado un nuevo recurso code 201
         return(StatusCode(HttpStatusCode.Created));
     }
     else
     {
         //No se pudo crear el recurso por un error interno code 500
         return(InternalServerError());
     }
 }
Beispiel #17
0
        public List <PayData> GetAllPayData(int isDel)
        {
            //1 sql语句
            string sql = "SELECT * FROM Table_PayData ";
            //2 执行
            SqlDbHelper db = new SqlDbHelper();
            DataTable   dt = db.ExecuteDataTable(sql);
            //3 关系--》对象
            List <PayData> pays = new List <PayData>();

            foreach (DataRow dr in dt.Rows)
            {
                //行转化成对象
                PayData pay = DataRowToPay(dr);
                pays.Add(pay);
            }
            return(pays);
        }
    string generateQihoo(PayData data)
    {
        PayInfo     info = new PayInfo();
        AccountData ad   = Native.mInstace.m_thridParty.GetAccountData();

        info.productId    = m_data.ID.ToString();
        info.productName  = m_data.Title;
        info.accessToken  = ad.token;
        info.appOrderId   = data.orderId;
        info.appUserId    = Core.Data.playerManager.PlayerID;
        info.appUserName  = Core.Data.playerManager.RTData.nickName;
        info.exchangeRate = "10";
        info.moneyAmount  = m_data.Price.ToString();

        info.notifyUri   = ad.payCallback;
        info.qihooUserId = ad.uniqueId;

        return(fastJSON.JSON.Instance.ToJSON(info));
    }
Beispiel #19
0
        private void btnOk_Click(object sender, RoutedEventArgs e)
        {
            PayData user = (PayData)gridUser.DataContext;

            if (isAdd)
            {
                if (bll.AddPay(user))
                {
                    MessageBox.Show("添加成功!");
                }
            }
            else
            {
                if (bll.UpdatePay(user))
                {
                    MessageBox.Show("修改成功!");
                }
            }
            this.Close();
        }
Beispiel #20
0
        //TODO:


        public int UpdatePay(PayData pay)
        {
            //1.sql语句
            string sql = "UPDATE Table_PayData SET Name=@Name,BasePay=@BasePay,RealPay=@RealPay,BonusInTotal=@BonusInTotal WHERE ID=@ID";

            SqlParameter[] param = { new SqlParameter("@Name",         SqlDbType.VarChar),
                                     new SqlParameter("@BasePay",      SqlDbType.Int),
                                     new SqlParameter("@RealPay",      SqlDbType.Int),
                                     new SqlParameter("@BonusInTotal", SqlDbType.Int),
                                     new SqlParameter("@ID",           SqlDbType.Int) };

            param[0].Value = pay.Name;
            param[1].Value = pay.BasePay;
            param[2].Value = pay.BasePay + pay.BonusInTotal;
            param[3].Value = pay.BonusInTotal;
            param[4].Value = pay.ID;
            SqlDbHelper db = new SqlDbHelper();

            return(db.ExecuteNonQuery(sql, param));
        }
Beispiel #21
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //app_secret  f00ca380481727f4c50293ba6a121c3c
            Random  rand = new Random();
            PayData pd   = new PayData();

            pd.SetValue("app_id", "wx5fa5622ada06cfe3");
            pd.SetValue("nonce_str", GetTimestamp());
            pd.SetValue("version", "1.0");
            pd.SetValue("timestamp", GetTimestamp());
            pd.SetValue("mch_id", "9");
            pd.SetValue("title", "测试");
            pd.SetValue("total_fee", "1");
            pd.SetValue("out_trade_no", GetTimestamp() + "CS" + rand.Next(100, 999));
            pd.SetValue("channel", "pay.weixin.jspay");
            pd.SetValue("openid", "ogqHzt8Yc0agDQzqBjYN2Vnw_7Zs");
            pd.SetValue("app_secret", "f00ca380481727f4c50293ba6a121c3c");

            pd.SetValue("sign", makeSignForQrCodePay(pd));
        }
Beispiel #22
0
        protected void Page_Load(object sender, EventArgs e)
        {
            WIDsubject.Text = "支付宝充值";
            WIDbody.Text    = "支付宝充值";

            string AmountString = Request.QueryString["Amount"];
            string UserIdString = Request.QueryString["UserId"];
            string UserName     = Request.QueryString["UserName"];

            TradeNo = Request.QueryString["TradeNo"];
            float.TryParse(AmountString, out Amount);
            if (Amount <= 0)
            {
                return;
            }
            if (!int.TryParse(UserIdString, out UserId))
            {
                return;
            }
            if (!GetTradeNo.CheckRemoveTradeNo(TradeNo))
            {
                return;
            }
            WIDtotal_amount.Text     = Amount.ToString("F2");
            WIDout_trade_no.Text     = TradeNo;// DateTime.Now.Ticks.ToString();
            WIDtotal_amount.ReadOnly = true;
            WIDbody.ReadOnly         = true;
            WIDsubject.ReadOnly      = true;
            WIDout_trade_no.ReadOnly = true;
            BtnAlipay_Click(null, null);

            PayData newAliPayData = new PayData();

            newAliPayData.Amount  = float.Parse(AmountString);
            newAliPayData.UserId  = UserId;
            newAliPayData.TradeNo = WIDout_trade_no.Text.Trim();
            newAliPayData.PayType = PayType.ALI_PAY;
            PayData.Add(newAliPayData.TradeNo, newAliPayData);
        }
Beispiel #23
0
        /// <summary>
        /// Agrega un nuevo reservacion
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public bool AddTarget(PayData data)
        {
            using (tecAirlinesEntities entities = new tecAirlinesEntities())
            {
                //Reserva newReservation = new Reserva();
                //newReservation.Codigo = data.Codigo;
                //newReservation.Chequeo = data.Chequeo;
                //newReservation.Equipaje = data.Equipaje;
                //newReservation.C_Vuelo = data.C_Vuelo;

                try
                {
                    //entities.Reservas.Add(newReservation);
                    //entities.SaveChanges();
                    int entity = entities.udsp_ins_pago(data.Numero, data.Contraseña, data.Expiracion, data.Titular, data.C_Reserva);
                    return(true);
                }
                catch (Exception e)
                {
                    return(false);
                }
            }
        }
Beispiel #24
0
        //生成签名--支付
        public static string makeSignForQrCodePay(PayData pd)
        {
            Dictionary <string, string> dics = new Dictionary <string, string>();

            //1-赋值公共参数
            dics.Add("app_id", pd.GetValue("app_id").ToString());//所给的appId
            dics.Add("nonce_str", pd.GetValue("nonce_str").ToString());
            dics.Add("version", pd.GetValue("version").ToString());
            dics.Add("timestamp", pd.GetValue("timestamp").ToString());
            dics.Add("mch_id", pd.GetValue("mch_id").ToString());
            //2-赋值支付参数
            dics.Add("title", pd.GetValue("title").ToString());
            dics.Add("total_fee", pd.GetValue("total_fee").ToString());
            dics.Add("out_trade_no", pd.GetValue("out_trade_no").ToString());
            dics.Add("channel", pd.GetValue("channel").ToString());
            dics.Add("openid", pd.GetValue("openid").ToString());
            //3-ASCII排序后的字符串
            var    signStr = getParamSrc(dics);
            string API     = signStr + "&key=" + pd.GetValue("app_secret");
            string signMd5 = MD5(API);

            return(signMd5);
        }
Beispiel #25
0
        public static OrderQueryResponse Run(string outTradeNo, string amount)
        {
            // 1固定参数
            PayData postmap = new PayData();    // 请求参数的map

            postmap.Put("version", PayConfig.Version);
            postmap.Put("reqtime", DateTime.Now.ToString("yyyyMMddHHmmss"));
            postmap.Put("rancode", Helper.GenerateRandom(5));
            postmap.Put("snNo", PayConfig.SnNo);

            postmap.Put("terminalType", "OTHER");
            postmap.Put("amount", amount);

            postmap.Put("refundNo", outTradeNo);//外部接入系统订单号
            postmap.Put("systemCode", PayConfig.SystemCode);

            // 2签名
            string sign = Helper.MakeSign(postmap.ToUrl());

            postmap.Put("sign", sign);

            // 3请求、响应
            string rspStr = HttpService.Post(postmap.ToJson(), PayConfig.WebSite + "/merchantpay/trade/refund?" + postmap.ToUrl());

            var response = JsonSerializeHelper.ToObject <OrderQueryResponse>(rspStr);

            if (response.ReturnCode == ResultCode.Success)
            {
                //签名验证
                Helper.CheckSign(rspStr, response.Sign);
                response.QueryData = JsonSerializeHelper.ToObject <OrderQueryDataResponse>(response.Data);

                //{ "bankOrderNo":"2018070517331227995415892","dateStr":"20180705173313","merchantNo":"0210a03fdd9c471d8682b584767bec4b","outChannelNo":"400012018070517331224222976","outTradeNo":"180705173311185002","returnCode":"userPaying","returnMessage":"需要用户输入支付密码","sign":"E43019AA329482DF381DD7C108A475F3","transTime":null}
            }
            return(response);
        }
Beispiel #26
0
        /// <summary>
        /// 微信(支付宝)被扫下单接口
        /// </summary>
        /// <param name="totalFee">支付金额,单位:元,保留小数点后两位</param>
        /// <param name="authCode">支付码</param>
        /// <param name="outTradeNo">订单号</param>
        /// <returns></returns>
        public static PayResult Pay(string totalFee, string authCode, string outTradeNo)
        {
            var result = new PayResult
            {
                Success = false
            };

            if (string.IsNullOrEmpty(totalFee))
            {
                result.Message = "支付金额,不能为空";
                return(result);
            }
            if (string.IsNullOrEmpty(authCode))
            {
                result.Message = "支付码,不能为空";
                return(result);
            }
            if (string.IsNullOrEmpty(outTradeNo))
            {
                result.Message = "订单号,不能为空";
                return(result);
            }

            // 1固定参数
            PayData postmap = new PayData();

            postmap.Put("version", PayConfig.Version);
            postmap.Put("rancode", Helper.GenerateRandom(5));
            postmap.Put("reqtime", DateTime.Now.ToString("yyyyMMddHHmmss"));
            postmap.Put("snNo", PayConfig.SnNo);
            postmap.Put("terminalType", "OTHER");
            postmap.Put("outTradeNo", outTradeNo); //外部接入系统订单号
            postmap.Put("amount", totalFee);       //支付金额,单位:元,保留小数点后两位
            postmap.Put("authCode", authCode);     //支付码
            postmap.Put("casherNo", "T001");       //收银员编号
            postmap.Put("description", "OTHER");
            postmap.Put("orderTime", DateTime.Now.ToString("yyyyMMddHHmmss"));
            postmap.Put("systemCode", PayConfig.SystemCode);

            // 2签名
            string sign = Helper.MakeSign(postmap.ToUrl());

            postmap.Put("sign", sign);

            // 3请求、响应
            string rspStr = HttpService.Post(postmap.ToJson(), PayConfig.WebSite + "/merchantpay/trade/microorder?" + postmap.ToUrl());

            var response = JsonSerializeHelper.ToObject <MicroOrderResponse>(rspStr);

            result.Message = response.ReturnMessage;

            if (response.ReturnCode == ResultCode.Success)
            {
                //支付成功
                //签名验证
                Helper.CheckSign(rspStr, response.Sign);
                var queryResult = OrderQuery.Query(response.OutTradeNo);//用商户订单号去查单
                result.Success    = true;
                result.Message    = "支付成功";
                result.OutTradeNo = queryResult.QueryData.CustomerNo;
                return(result);
            }
            if (response.ReturnCode == ResultCode.UserPaying)
            {
                //签名验证
                Helper.CheckSign(rspStr, response.Sign);
                //等待用户支付,需查单
                //用商户订单号去查单

                //确认支付是否成功,每隔一段时间查询一次订单,共查询30次--订单有效时间1分钟
                int queryTimes = 30;//查询次数计数器
                while (queryTimes-- > 0)
                {
                    var queryResult = OrderQuery.Query(response.OutTradeNo);//用商户订单号去查单
                    //如果需要继续查询,则等待2s后继续
                    if (queryResult.ReturnCode == ResultCode.Success && (queryResult.QueryData.PayStatus == "I" || queryResult.QueryData.PayStatus == "O"))
                    {
                        Thread.Sleep(2000);
                        continue;
                    }
                    //查询成功,返回订单查询接口返回的数据,支付成功!
                    if (queryResult.ReturnCode == ResultCode.Success && queryResult.QueryData.PayStatus == "P")
                    {
                        result.Success    = true;
                        result.Message    = "支付成功";
                        result.OutTradeNo = queryResult.QueryData.CustomerNo;
                        return(result);
                    }
                    //订单交易失败,直接返回刷卡支付接口返回的结果,失败原因会在err_code中描述
                    result.Message = "支付失败";
                    return(result);
                }
            }

            //Refund.Run(response.BankOrderNo, totalFee);
            //支付失败
            return(result);
        }
Beispiel #27
0
 public virtual void Pay(PayData data)
 {
     currentPayData = data;
     mSdkApi.Pay(currentPayData.num, currentPayData.orderId);
 }
Beispiel #28
0
        public static string Run(string body, double total_fee, string authCode, string outTradeNo)
        {
            // 1固定参数
            PayData postmap = new PayData();    // 请求参数的map

            postmap.Put("rancode", Helper.GenerateRandom(5));
            postmap.Put("reqtime", DateTime.Now.ToString("yyyyMMddHHmmss"));
            postmap.Put("snNo", PayConfig.SnNo);
            //postmap.Put("merchantNo", PayConfig.MerchantNo);

            postmap.Put("terminalType", "OTHER");
            postmap.Put("outTradeNo ", outTradeNo);//外部接入系统订单号
            postmap.Put("amount ", total_fee);
            postmap.Put("authCode ", authCode);
            postmap.Put("casherNo ", "T001");//收银员编号
            postmap.Put("description", "OTHER");
            postmap.Put("orderTime", DateTime.Now.ToString("yyyyMMddHHmmss"));
            postmap.Put("systemCode", PayConfig.SystemCode);
            postmap.Put("version", PayConfig.Version);



            byte[] byteArray = System.Text.Encoding.Default.GetBytes(PayConfig.Key);


            byte[] bcdbyte = str2Bcd("B95EB858BAA4170731EDBB0D7661B39A34");
            byte[] keybyte = str2Bcd("1111222233334444");
            byte   ssss    = 0;

            byte[] ggg     = new byte[] { ssss };
            byte   borByte = 0;

            for (int i = 0; i < bcdbyte.Length - 1; i++)
            {
                if (i == 0)
                {
                    borByte = bcdbyte[i];
                }
                borByte ^= bcdbyte[i + 1];
            }
            byte[]        bor = new byte[] { borByte };
            StringBuilder sb  = new StringBuilder(bor.Length);
            String        sTemp;

            for (int i = 0; i < bor.Length; i++)
            {
                sTemp = String.Format("{0:X}", 0xFF & bor[i]);
                //sTemp = Integer.toHexString(0xFF & bor[i]);
                if (sTemp.Count() < 2)
                {
                    sb.Append(0);
                }
                sb.Append(sTemp.ToUpper());
            }
            var str = sb.ToString();

            var key = DesHelper.Decrypt(PayConfig.Key, str);



            // 2签名
            string sign = Helper.MakeSign(postmap.ToUrl(), key);

            postmap.Put("sign", sign);

            // 3请求、响应
            string rspStr = HttpService.Post(postmap.ToJson(), PayConfig.WebSite + "/merchantpay/trade/microorder?" + postmap.ToUrl());



            var response = JsonSerializeHelper.ToObject <ActivationResponse>(rspStr);

            if (response.ReturnCode == ResultCode.Success)
            {
                var data = JsonSerializeHelper.ToObject <ActivationDataResponse>(response.Data);
                //var key = DesHelper.Decrypt(data.Key, PayConfig.DefaultKey);
            }
            return(rspStr);
        }
Beispiel #29
0
 public Context(string value)
 {
     this.Input  = value;
     this.Output = new PayData();
 }
Beispiel #30
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";

            var payKey       = ConfigurationManager.AppSettings["payKey"];
            var paySecretKey = ConfigurationManager.AppSettings["paySecretKey"];

            string AmountString = context.Request.QueryString["Amount"];
            string UserIdString = context.Request.QueryString["UserId"];
            string TradeNo      = context.Request.QueryString["TradeNo"];
            float  Amount       = 0;

            float.TryParse(AmountString, out Amount);
            if (Amount <= 0)
            {
                return;
            }
            int UserId = 0;

            if (!int.TryParse(UserIdString, out UserId))
            {
                return;
            }
            //检查交易号是否存在
            if (!WebApplication1.GetTradeNo.CheckRemoveTradeNo(TradeNo))
            {
                return;
            }

            var bankPayReq = new BankPayRequest();

            bankPayReq.AddParams("payKey", payKey);
            bankPayReq.AddParams("productName", "load");
            bankPayReq.AddParams("orderNo", TradeNo);
            bankPayReq.AddParams("orderPrice", AmountString);
            bankPayReq.AddParams("payWayCode", "ZITOPAY");
            bankPayReq.AddParams("payTypeCode", "ZITOPAY_185374_BANK_SCAN");
            bankPayReq.AddParams("orderIp", "");
            bankPayReq.AddParams("orderDate", DateTime.Now.ToString("yyyyMMdd"));
            bankPayReq.AddParams("orderTime", DateTime.Now.ToString("yyyyMMddHHmmss"));
            bankPayReq.AddParams("returnUrl", "http://" + context.Request.Url.Authority + "/GameWebApplication/BankPay/BankReturn_Url.aspx");
            bankPayReq.AddParams("notifyUrl", "http://" + context.Request.Url.Authority + "/GameWebApplication/BankPay/BankNotify_Url.ashx");
            bankPayReq.AddParams("orderPeriod", 60);
            bankPayReq.AddParams("remark", "");
            bankPayReq.AddParams("field1", "");
            bankPayReq.AddParams("field2", "");
            bankPayReq.AddParams("field3", "");
            bankPayReq.AddParams("field4", "");
            bankPayReq.AddParams("field5", "");

            var sign = bankPayReq.GetSign(paySecretKey);

            bankPayReq.AddParams("sign", sign);
            var param = bankPayReq.ToParams();

            var url = "http://api.quanyinzf.com:8050/rb-pay-web-gateway/scanPay/initPayIntf?" + param;
            //url = "http://47.75.201.136:9000/proxy.ashx?url=" + HttpUtility.UrlEncode(url);
            var request = System.Net.HttpWebRequest.Create(url);

            request.Method = "GET";
            var    sendresponse     = request.GetResponse();
            string sendresponsetext = "";

            using (var streamReader = new StreamReader(sendresponse.GetResponseStream()))
            {
                sendresponsetext = streamReader.ReadToEnd().Trim();
            }

            var data   = JsonMapper.ToObject(sendresponsetext);
            var result = data["result"].ToString();

            if (result == "success")
            {
                PayData.Add(TradeNo, new PayData()
                {
                    TradeNo    = TradeNo,
                    Amount     = float.Parse(AmountString),
                    CreateDate = DateTime.Now,
                    Status     = 0,
                    PayType    = PayType.BANK_CARD,
                    UserId     = int.Parse(context.Request["UserId"])
                });
                url = data["code_url"].ToString();
                context.Response.Redirect(url);
            }
            else
            {
                var message = data["msg"].ToString();
                var content = string.Format("<script>alert('{0}');</script>", message);
                context.Response.Write(content);
            }
        }