/// <summary> /// 获取微信小程序码 /// </summary> /// <param name="token"></param> public static async Task <string> GetWXACode(WXACodeParam param, string token) { string result = null; var p = JsonConvert.SerializeObject(param, Formatting.Indented, new JsonSerializerSettings { ContractResolver = new LowercaseContractResolver() }); var sendUrl = string.Format(WeChatApiUrl.GET_WXACODE, token); try { var response = await HttpClientHelper.HttpPostStreamAsync(sendUrl, p); var bytesArr = StreamHelper.StreamToBytes(response); var b64 = Convert.ToBase64String(bytesArr); var imgB64 = $"data:image/jpeg;base64,{b64}"; result = imgB64; } catch (Exception ex) { result = null; //取得当前方法类全名 包括命名空间 string className = System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName; //取得当前方法名 string methedName = System.Reflection.MethodBase.GetCurrentMethod().Name; Common.Helper.Logger.Error($"获取微信小程序码失败 {sendUrl}:{ex.Message} {Environment.NewLine} at {className}.{methedName}:{Environment.NewLine} {p}"); } return(result); }
public async Task <IActionResult> GetTransferedWXAcodeAsync(string orderGuid) { #region 检测待转让订单是否能被转让 var orderBiz = new MealOrderBiz(); var orderModelOld = await orderBiz.GetModelAsync(orderGuid); if (orderModelOld == null) { return(Failed(ErrorCode.Empty, "无此订单数据")); } if (orderModelOld.OrderStatus != MealOrderStatusEnum.Paided.ToString()) { var enumStatus = (MealOrderStatusEnum)Enum.Parse(typeof(MealOrderStatusEnum), orderModelOld.OrderStatus); return(Failed(ErrorCode.UserData, $"当前订单状态为[{enumStatus.GetDescription()}]不支持转让")); } else if (orderModelOld.MealEndTime < DateTime.Now) { return(Failed(ErrorCode.UserData, $"当前订单已过用餐时间,无法转让")); } #endregion var resToken = WeChartApi.GetAccessToken(PlatformSettings.CDMealClientAppId, PlatformSettings.CDMealClientAppSecret).Result; if (resToken.Errcode != 0 || resToken == null) { return(Failed(ErrorCode.SystemException, $"获取token失败:{resToken.Errmsg}")); } var param = new WXACodeParam { Path = $"pages/OrderTransfer/OrderTransfer?orderGuid={orderGuid}", Width = 280 }; var res = WeChartApi.GetWXACode(param, resToken.AccessToken).Result; if (string.IsNullOrWhiteSpace(res)) { return(Failed(ErrorCode.SystemException, $"获取转让码失败")); } var response = new GetTransferedWXAcodeResponseDto { TransferedCodeImg = res, CategoryName = orderModelOld.CategoryName, MealStartTime = orderModelOld.MealStartTime, MealEndTime = orderModelOld.MealEndTime }; return(Success(response)); }