/// <summary> /// 统一下下单接口, 返回发起支付的Package /// </summary> /// <param name="unifierViewModel"></param> /// <returns></returns> public string UnifiedOrder(UnifierOrderViewModel unifierViewModel) { var wxPayData = new WxPayData(); wxPayData.SetValue("appid", WxPayConfig.APPID); wxPayData.SetValue("mch_id", WxPayConfig.MCHID); wxPayData.SetValue("body", unifierViewModel.Body); wxPayData.SetValue("attach", unifierViewModel.Attach); wxPayData.SetValue("out_trade_no", unifierViewModel.OutTradeNo); wxPayData.SetValue("total_fee", unifierViewModel.TotalFee); wxPayData.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss")); wxPayData.SetValue("time_expire", DateTime.Now.AddMinutes(10).ToString("yyyyMMddHHmmss")); wxPayData.SetValue("goods_tag", unifierViewModel.Tag); wxPayData.SetValue("trade_type", "JSAPI"); wxPayData.SetValue("openid", unifierViewModel.OpenId); var result = WxPayApi.UnifiedOrder(wxPayData, unifierViewModel.NotifyUrl); var jsonResult = GetJsApiParameters(result); return(jsonResult); }
public async Task <IActionResult> UiniferOrder(Guid orderId) { try { var orderEntity = await OrderBs.GetDetailData(orderId); var totalFee = orderEntity.OrderGoods.Select(x => new { Fee = x.Good.Price * x.Number }).Sum(x => x.Fee); var outtradeno = WeAppPayApi.GenOutTradeNo(); var vm = new UnifierOrderViewModel() { OpenId = orderEntity.UserAccountEntry.WeChat.OpenIdMapping.FirstOrDefault(x => x.Source == "丸子家族")?.OpenId, Body = "ceshi ", Attach = "丸子家族", OutTradeNo = outtradeno, Tag = "", TotalFee = (int)(totalFee * 100) }; orderEntity.OutTradeNo = outtradeno; await OrderBs.Update(orderEntity); var packageStr = WeAppPayApi.UnifiedOrder(vm); //return Json(packageStr); return(Content(packageStr, "application/json")); } catch (Exception exc) { logger.LogError(exc.Message); return(Content(exc.Message)); } }