Пример #1
0
        public string PayNotice()
        {
            log4net.ILog log = log4net.LogManager.GetLogger(this.GetType());//获取一个日志记录器
            try
            {
                ResponseBean responseBean = new ResponseBean(this.Request);
                var          sign         = GetSign(responseBean);
                if (responseBean.p4_status == "1" && sign.Equals(responseBean.p10_sign))
                {
                    string[] data = responseBean.p11_remark.Split('|');
                    log.Info(DateTime.Now.ToString() + ": pay info:uid>" + data[0] + " goodsid>" + data[1]);

                    int      uid     = Convert.ToInt32(data[0]);
                    int      goodsid = Convert.ToInt32(data[1]);
                    EAccount account = DBBase.Get <EAccount>(uid);
                    EStore   goods   = DBBase.Get <EStore>(goodsid);

                    int oldDiamon = account.Diamond;
                    if (goods.Type == "Damion")
                    {
                        account.Diamond += Convert.ToInt32(goods.Name);
                    }
                    else if (goods.Type == "Vip")
                    {
                        account.Vip          = Convert.ToInt32(goods.Name);
                        account.VipBeginTime = DateTime.Now;
                    }
                    DBBase.Change(account);
                    EBuyRecord record = new EBuyRecord()
                    {
                        BuyerID     = account.ID,
                        BuyTime     = DateTime.Now,
                        GoodsID     = goodsid,
                        Num         = 1,
                        NowDiamond  = account.Diamond,
                        NowGold     = account.Gold,
                        CostDiamond = account.Diamond - oldDiamon,
                        CostGold    = 0
                    };
                    DBBase.Create(record);
                    log.Info(DateTime.Now.ToString() + ": pay success:uid>" + uid + " goodsid>" + goodsid);//写入一条新log
                    //服务器操作
                    return("success");
                }
                else
                {
                    log.Info(DateTime.Now.ToString() + ": pay error: status>" + responseBean.p4_status);//写入一条新log
                    return("error");
                }
            }
            catch (Exception ex)
            {
                log.Error(DateTime.Now.ToString() + ": pay error: " + ex.Message + " " + ex.StackTrace);//写入一条新log
                return("error");
            }
        }
Пример #2
0
        private string GetSign(ResponseBean bean)
        {
            //商户密钥(由竣付通注册后分配)
            string compKey = "6A4EEA817F400C8960AC75A5B6D802D6";

            if (bean.p7_paychannelnum == null)
            {
                string p7_paychannelnum = "";
                string rawString        = bean.p1_usercode + "&" + bean.p2_order + "&" + bean.p3_money + "&" + bean.p4_status + "&" + bean.p5_jtpayorder + "&" + bean.p6_paymethod + "&" + p7_paychannelnum + "&" + bean.p8_charset + "&" + bean.p9_signtype + "&" + compKey;
                return(FormsAuthentication.HashPasswordForStoringInConfigFile(rawString, "MD5"));
            }
            else
            {
                string rawString = bean.p1_usercode + "&" + bean.p2_order + "&" + bean.p3_money + "&" + bean.p4_status + "&" + bean.p5_jtpayorder + "&" + bean.p6_paymethod + "&" + bean.p7_paychannelnum + "&" + bean.p8_charset + "&" + bean.p9_signtype + "&" + compKey;
                return(FormsAuthentication.HashPasswordForStoringInConfigFile(rawString, "MD5"));
            }
        }