public async Task <ResponseViewModel <object> > UploadingReceipt([FromBody] RequestViewModel obj) { ResponseViewModel <object> response = null; 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 strJson = RedisHelper.StringGet($"{CacheKey.Token}{obj.HendInfo.UserOpenId}", RedisFolderEnum.token, RedisEnum.Three); var userLog = JsonHelper.DeserializeJsonToObject <UserLoginDto>(strJson); ReceiptDto receipt = new ReceiptDto { AppleId = (string)obj.Data.appleId, Id = (string)obj.Data.productId, OrderId = (string)obj.Data.orderId, Receipt = (string)obj.Data.receipt }; AppleReceiptDto appleReceipt = new AppleReceiptDto() { Updatetime = DateTime.Now, Receipt = receipt.Receipt, Order_id = receipt.OrderId, }; if (_recharge.VerifyReceipt(receipt)) { //获取商品信息 RechargeCommodityDto rechargeCommodity = await _recharge.GetAppleProductAsync(receipt.AppleId); //充值虚拟币 double amount = double.Parse(rechargeCommodity.Amount.ToString()); //关闭章鱼充值 //if (_accout.Recharge_php(userLog.Userid, receipt.OrderId, amount, "充值", "hiAlipay")) //从php充值 if (_accout.Recharge_php(userLog.Userid, receipt.OrderId, amount, "充值", "yibiyibaidekey")) { //更新苹果订单 await _recharge.UpdateAppleOrderAsync(appleReceipt); //更新充值记录 await _recharge.UpdateRechargeLogAsync("2", receipt.OrderId); } } } else { /*短令牌失效*/ sysCode = SysCode.SessionTokenLose; } response = new ResponseViewModel <object>(sysCode, null, obj.Encrypt, _sys, obj.Secret); 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}验签名失败"); } } }