예제 #1
0
        /// <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);
        }
예제 #2
0
        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));
            }
        }