/// <summary> /// 行程分享 /// </summary> /// <param name="request">The request.</param> /// <param name="userId">The user identifier.</param> /// <returns>Task<Response<StrokeShareResponse>>.</returns> /// <exception cref="NotImplementedException"></exception> public async Task <Response <StrokeShareResponse> > StrokeShare(StrokeShareRequest request) { var userId = contextAccessor.UserId(); var strokeInfo = await this.strokeContext.Strokes.FirstOrDefaultAsync(x => x.Id == request.StrokeId); if (strokeInfo == null || strokeInfo.IsActive == false) { throw new Exception("该行程不存在或已经下架"); } Logger.LogDebug($"dizHi------------{request.ShareUrl}"); // var resultUrl = "https://bcl.baocailang.com/wechat/oauth2?state=travel";//用此地址 var result = JSSDKHelper.GetJsSdkUiPackageAsync(this.weChatOptions.AppId, this.weChatOptions.AppSecret, request.ShareUrl).Result; #region 另一种方法 //var timestamp = JSSDKHelper.GetTimestamp(); //var nonceStr = JSSDKHelper.GetNoncestr(); //var ticket = Senparc.Weixin.MP.Containers.JsApiTicketContainer.TryGetJsApiTicket(this.weChatOptions.AppId, this.weChatOptions.AppSecret, true); //var signature = JSSDKHelper.GetSignature(ticket, nonceStr, timestamp, request.ShareUrl); #endregion var shareUrl = $"https://bcl.baocailang.com/wechat/oauth2?state=travel%26shareCode={userId}%26from=1%26resultUrl={request.JumpUrl}"; //var shareUrl = request.ShareUrl + $"&shareCode={userId}&from=1&resultUrl={request.JumpUrl}"; Logger.LogDebug($"构造的分享地址为:{shareUrl}"); return(new Response <StrokeShareResponse> { Data = new StrokeShareResponse { AppId = this.weChatOptions.AppId, NonceStr = result.NonceStr, Signature = result.Signature, Timestamp = result.Timestamp, ShareImageUrl = this.weChatOptions.HostUrl + strokeInfo.ImageUrl, ShareUrl = shareUrl } }); }
public Task <Response <StrokeShareResponse> > StrokeShare([FromBody] StrokeShareRequest request) { return(this.strokeService.StrokeShare(request)); }