示例#1
0
        /// <summary>
        /// 充值回调
        /// </summary>
        /// <param name="code">回调code</param>
        /// <param name="state">回调携带的参数:IdAmount 订单ID 或者 充值金额+"|" </param>
        /// <returns></returns>
        public ActionResult Default(string code, string state)
        {
            RecordService RecSVC       = new RecordService();
            Bis_Record    recordEntity = new Bis_Record();

            ViewBag.tipStr = "微信支付正在处理...";

            if (!state.Contains("|"))
            {
                // 订单消费
                ViewBag.Flag = "";
                var OrderID = Convert.ToString(state);

                // 根据订单ID查询订单信息
                recordEntity = RecSVC.SelectByID(OrderID);
                if (recordEntity == null)
                {
                    ViewBag.tipStr = "订单信息存在问题,请返回重试";
                    return(View(recordEntity));
                }
                //// 测试订单金额 0.02
                //recordEntity.Amount = Convert.ToDecimal(0.02);
                if (recordEntity.Amount <= 0)
                {
                    ViewBag.tipStr = "支付金额必须大于0,请返回重试";
                    return(View(recordEntity));
                }

                // 创建微信支付参数
                JsApiPay jsApiPay = new JsApiPay(this);
                jsApiPay.GetOpenidAndAccessTokenFromCode(code);
                jsApiPay.total_fee = Convert.ToInt32(recordEntity.Amount * 100);
                jsApiPay.order_no  = recordEntity.OrderNo;
                jsApiPay.attach    = recordEntity.UserID;

                if (string.IsNullOrEmpty(jsApiPay.openid) || jsApiPay.total_fee <= 0)
                {
                    ViewBag.tipStr = "页面参数出错,请返回重试";
                    return(View(recordEntity));
                }

                // JSAPI支付预处理
                try
                {
                    WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult();
                    string    wxJsApiParam       = jsApiPay.GetJsApiParameters();//获取H5调起JS API参数
                    ViewBag.wxJsApiParam = wxJsApiParam;
                }
                catch (Exception ex)
                {
                    ViewBag.tipStr = "下单失败,请返回重试";
                    MYLog.Error("下单失败,请返回重试:" + SessionTools.UserName, ex.ToString());
                }
            }
            else
            {
                // 订单充值
                ViewBag.Flag = "1";

                // 判断充值金额
                var money = Convert.ToDecimal(state.Substring(0, state.Length - 1));
                if (money < Convert.ToDecimal(0.01))
                {
                    ViewBag.tipStr = "充值金额不能低于0.01";
                    return(View(recordEntity));
                }

                // 创建充值订单
                var resultData = RecSVC.SubmitRecharge(money, SessionTools.UserID);
                if (!(resultData != null && resultData.status > 0))
                {
                    ViewBag.tipStr = "创建充值订单失败";
                    return(View(recordEntity));
                }

                // 取得订单信息
                recordEntity = resultData.data;
                if (recordEntity.Amount <= 0)
                {
                    ViewBag.tipStr = "支付金额必须大于0,请返回重试";
                    return(View(recordEntity));
                }

                // 创建微信支付参数
                JsApiPay jsApiPay = new JsApiPay(this);
                jsApiPay.GetOpenidAndAccessTokenFromCode(code);//openid
                jsApiPay.total_fee = Convert.ToInt32(recordEntity.Amount * 100);
                jsApiPay.order_no  = recordEntity.OrderNo;
                jsApiPay.attach    = recordEntity.UserID.ToString() + "|";

                if (string.IsNullOrEmpty(jsApiPay.openid) || jsApiPay.total_fee <= 0)
                {
                    ViewBag.tipStr = "页面参数出错,请返回重试";
                    return(View(recordEntity));
                }

                //JSAPI支付预处理
                try
                {
                    WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult();
                    string    wxJsApiParam       = jsApiPay.GetJsApiParameters();//获取H5调起JS API参数
                    ViewBag.wxJsApiParam = wxJsApiParam;
                }
                catch (Exception ex)
                {
                    ViewBag.tipStr = "充值失败,请返回重试";
                    MYLog.Error("充值失败,请返回重试:" + SessionTools.UserName, ex.ToString());
                }
            }
            return(View(recordEntity));
        }
示例#2
0
        public void SendMsgRefund(Bis_Record order)
        {
            try
            {
                var SVC = new UserService();

                var ConsumeRecharge = string.Empty;
                if (order.Type == (int)Common.Order_Type.Recharge)
                {
                    ConsumeRecharge = "充值退款成功。";
                }
                else
                {
                    ConsumeRecharge = "消费退款成功。";
                }

                /// {{first.DATA}}
                /// 游戏名:{{keyword1.DATA}}
                /// 消费金额:{{keyword2.DATA}}
                /// 订单号:{{keyword3.DATA}}
                /// 时间:{{keyword4.DATA}}
                /// {{remark.DATA}}
                var toUser = SVC.GetUserBase(order.UserID);
                JsApiPay.SendMsg(toUser.WeiXin_Openid, MsgConfig.Msg2, new
                {
                    first = new MsgValue()
                    {
                        value = ConsumeRecharge
                    },
                    keyword1 = new MsgValue()
                    {
                        value = Convert.ToString(order.Amount) + "元"
                    },
                    keyword2 = new MsgValue()
                    {
                        value = order.OrderNo
                    },
                    keyword3 = new MsgValue()
                    {
                        value = order.CreateTime.Value.ToString("yyyy-MM-dd")
                    },
                    remark = new MsgValue()
                    {
                        value = "遇到任何问题您可以随时联系公众号客服。客服电话:400-618-6816"
                    },
                });


                /// {{first.DATA}}
                /// 游戏名:{{keyword1.DATA}}
                /// 消费金额:{{keyword2.DATA}}
                /// 订单号:{{keyword3.DATA}}
                /// 时间:{{keyword4.DATA}}
                /// {{remark.DATA}}
                var telephone = ConfigurationManager.AppSettings["ManagerPhone"].ToString();
                var baseUser  = SVC.GetUserBaseByTelePhone(telephone);
                if (baseUser != null)
                {
                    JsApiPay.SendMsg(baseUser.WeiXin_Openid, MsgConfig.Msg2, new
                    {
                        first = new MsgValue()
                        {
                            value = string.Format("用户 {0} " + ConsumeRecharge, string.IsNullOrEmpty(toUser.TelePhone) ? toUser.UserName : toUser.TelePhone)
                        },
                        keyword1 = new MsgValue()
                        {
                            value = Convert.ToString(order.Amount) + "元"
                        },
                        keyword2 = new MsgValue()
                        {
                            value = order.OrderNo
                        },
                        keyword3 = new MsgValue()
                        {
                            value = order.CreateTime.Value.ToString("yyyy-MM-dd")
                        },
                        remark = new MsgValue()
                        {
                            value = "如果对此有疑问,请联系技术人员!"
                        },
                    });
                }
            }
            catch (Exception ex)
            {
                MYLog.Error("发送消息通知:" + SessionTools.UserName, ex.ToString());
            }
        }