/// <summary> /// 记录支付宝订单 /// author:陶林辉 /// </summary> /// <param name="aliPayOrder"></param> /// <returns></returns> public async Task <bool> RecordAlipayOrderAsync(AliPayOrderDto aliPayOrder) { var entity = _mapper.Map <AliPayOrderDto, AliPayOrderEntity>(aliPayOrder); _context.AliPayOrder.Add(entity); return(await _context.SaveChangesAsync() > 0); }
public async Task <ResponseViewModel <string> > AliPaySign([FromBody] RequestViewModel obj) { ResponseViewModel <string> response = null; string result = string.Empty; obj = JsonHelper.DeserializeJsonToObject <RequestViewModel>(Content(User.Identity.Name).Content); var sysCode = SysCode.Ok; bool isLog = _token.VerifyToken(obj.HendInfo.UserOpenId, obj.HendInfo.SessionToken); if (isLog) { string json = RedisHelper.StringGet($"{CacheKey.Token}{obj.HendInfo.UserOpenId}", RedisFolderEnum.token, RedisEnum.Three); var userLog = JsonHelper.DeserializeJsonToObject <UserLoginDto>(json); int itemId = StringExtension.ToInt((string)obj.Data.itemId); //; //商品Id RechargeCommodityDto rechargeCommodity = await _recharge.GetRechargeCommodityByIdAsync(itemId); if (rechargeCommodity == null) { sysCode = SysCode.RechargeCommodityIsNULL; //充值商品不存在, } if (sysCode == SysCode.Ok) { string order = Guid.NewGuid().ToString(); result = _recharge.CreateAlipaySign(rechargeCommodity, order); AliPayOrderDto AliPayOrder = new AliPayOrderDto() { Commodity_id = itemId, Out_trade_no = order, Createtime = DateTime.Now, Updatetime = DateTime.Now, Gmt_payment = DateTime.Now, Userid = userLog.Userid, Total_amount = rechargeCommodity.Money }; await _recharge.RecordAlipayOrderAsync(AliPayOrder);//记录支付宝订单。 RechargeDto recharge = new RechargeDto() { Amount = rechargeCommodity.Amount, createtime = DateTime.Now, Pay_type = 1, //支付类型 1支付宝,2微信,3苹果内购 Status = 1, //1 待处理 2 已支付 3 支付失败 4 超时 updatetime = DateTime.Now, UserId = userLog.Userid, Order_id = AliPayOrder.Out_trade_no, }; await _recharge.RecordRechargeLogAsync(recharge); //记录充值订 } } else { /*短令牌失效*/ sysCode = SysCode.SessionTokenLose; } response = new ResponseViewModel <string>(sysCode, sysCode == SysCode.Ok ? result : null, obj.Encrypt, _sys, obj.Secret); return(response); }
/// <summary> /// 根据商户订单获取订单详情, /// author:陶林辉 /// </summary> /// <param name="aliPayOrder">支付宝商户订单</param> /// <returns></returns> public async Task <bool> UpdateAlipayOrderAsync(AliPayOrderDto aliPayOrder) { var entity = await _context.AliPayOrder.Where(m => m.Out_trade_no == aliPayOrder.Out_trade_no).FirstOrDefaultAsync(); entity.trade_no = aliPayOrder.Trade_no; entity.Trade_status = aliPayOrder.Trade_status; entity.Gmt_payment = aliPayOrder.Gmt_payment; entity.updatetime = aliPayOrder.Updatetime; entity.Buyer_id = aliPayOrder.Buyer_id; entity.Fund_channel = aliPayOrder.Fund_channel; return(await _context.SaveChangesAsync() > 0); }
public async Task <H5ResponseViewModel <AliPayH5View> > PayRequest([FromBody] H5RequestViewModel Parameters) { var sysCode = _sys.CheckParameters(Parameters.data, "payrequest"); H5ResponseViewModel <AliPayH5View> response = null; AliPayH5View result = null; string token = Parameters.data.token; bool isLog = _token.VerifyToken(token); if (sysCode == SysCode.Ok) { if (isLog) { string json = RedisHelper.StringGet($"{CacheKey.Token}{token}", RedisFolderEnum.token, RedisEnum.Five); UserLoginDto userLogin = JsonHelper.DeserializeJsonToObject <UserLoginDto>(json); int id = int.Parse((string)Parameters.data.id); var rechargeCommodity = await _recharge.GetRechargeCommodityByIdAsync(id); string order = Guid.NewGuid().ToString(); result = _recharge.CreateAlipayH5Receipt(rechargeCommodity, order); AliPayOrderDto AliPayOrder = new AliPayOrderDto() { Commodity_id = id, Out_trade_no = order, Createtime = DateTime.Now, Updatetime = DateTime.Now, Gmt_payment = DateTime.Now, Userid = userLogin.Userid, Total_amount = rechargeCommodity.Money //人名币 }; await _recharge.RecordAlipayOrderAsync(AliPayOrder); //记录支付宝订单。 RechargeDto recharge = new RechargeDto() { Amount = rechargeCommodity.Amount, //虚拟币 createtime = DateTime.Now, Pay_type = 1, //支付类型 1支付宝,2微信,3苹果内购 Status = 1, //1 待处理 2 已支付 3 支付失败 4 超时 updatetime = DateTime.Now, UserId = userLogin.Userid, Order_id = AliPayOrder.Out_trade_no, }; await _recharge.RecordRechargeLogAsync(recharge); //记录充值订 } else { sysCode = SysCode.TokenLose; } } response = new H5ResponseViewModel <AliPayH5View>(sysCode, result ?? null); return(response); }
public async Task Notify(Dictionary <string, string> sArray) { _log.Info($"支付宝回调{sArray}"); AliPayOrderDto aliPayOrder = new AliPayOrderDto(); if (sArray.Count != 0) { string out_trade_no = sArray["out_trade_no"]; bool flag = _alipayService.RSACheckV1(sArray); if (flag) { string status = "1"; //查询订单是否存在 aliPayOrder = await _recharge.GetAliPayOrderByIdAsync(out_trade_no); //查询商品信息 var rechargeCommodity = await _recharge.GetRechargeCommodityByIdAsync(int.Parse(aliPayOrder.Commodity_id.ToString())); if (aliPayOrder.Out_trade_no == "" && aliPayOrder.Out_trade_no == null) { /*订单不存在*/ return; } aliPayOrder.Out_trade_no = sArray["out_trade_no"]; //商户订单号 aliPayOrder.Fund_channel = sArray["fund_bill_list"]; aliPayOrder.Trade_no = sArray["trade_no"]; //支付宝交易订单号 aliPayOrder.Gmt_payment = DateTime.Parse(sArray["gmt_payment"]); //付款时间 aliPayOrder.Updatetime = DateTime.Now; aliPayOrder.Trade_status = sArray["trade_status"]; aliPayOrder.Buyer_id = sArray["buyer_logon_id"]; //买家支付宝账号 //更新数据库的支付宝订单状态 await _recharge.UpdateAlipayOrderAsync(aliPayOrder); //判断支付状态 switch (aliPayOrder.Trade_status) { case "TRADE_SUCCESS": status = "2"; break; case "TRADE_CLOSED": status = "3"; break; case "WAIT_BUYER_PAY": status = "1"; break; case "TRADE_FINISHED": status = "2"; break; default: break; } if (status == "2") { //关闭章鱼充值 // if (_biz.Recharge(aliPayOrder.Userid, aliPayOrder.Out_trade_no, double.Parse(rechargeCommodity.Amount.ToString()), "hiAlipay")) if (_accout.Recharge_php(aliPayOrder.Userid, aliPayOrder.Out_trade_no, double.Parse(rechargeCommodity.Amount.ToString()), "充值", "yibiyibaidekey")) { await _recharge.UpdateRechargeLogAsync(status, aliPayOrder.Out_trade_no); } } } else { _log.Info($"{out_trade_no}验签名失败"); } } }