public async Task <IActionResult> WxPayIndex() { // 获取openId var openId = HttpContext.Session.GetString("OpenId"); if (string.IsNullOrEmpty(openId)) { return(Json(Url.Action("Index", "Home"))); } var accessToken = HttpContext.Session.GetString("accessToken"); HttpContext.Session.SetString("SiteUrl", _siteUrl); // 根据openId 查询用户 var user = _authSrv.GetUserByExternalId(openId, 1); // 获取微信用户信息 OAuthUserInfo userInfo = OAuthApi.GetUserInfo(accessToken, openId); // 用户存在则获取信息,不存在则创建用户 if (user == null) { var newUser = new BaseUser { UserName = openId, ExternalId = openId, ExternalType = 1, ExternalName = userInfo.nickname }; var result = await _authSrv.CreateUser(newUser, openId); if (result.Succeeded) { var role = await _authSrv.AddRolesAsync(openId, new string[] { "SysUser" }); } user = newUser; } var paidOrders = _orderSrv.GetPaidOrders().Where(q => (q.OrderType == OrderType.BuyInStore || q.OrderType == OrderType.BuyOnline) && q.BuyerIdentity == openId); // Card var jssdkUiPackage = JSSDKHelper.GetJsSdkUiPackage(TenPayV3Info.AppId, TenPayV3Info.AppSecret, Request.AbsoluteUri()); var api_ticket = WxCardApiTicketContainer.TryGetWxCardApiTicket(TenPayV3Info.AppId, TenPayV3Info.AppSecret); // var openId = HttpContext.Session.GetString("OpenId"); var timeStamp = TenPayV3Util.GetTimestamp(); var nonceStr = TenPayV3Util.GetNoncestr(); var sign = JSSDKHelper.GetcardExtSign(api_ticket, timeStamp, "pukHe541WmaHEBgW3gACiBCD4EbY", nonceStr); var cardExt = new { timestamp = timeStamp, signature = sign, nonce_str = nonceStr }; // 登陆Identity用户 await _authSrv.Login(user); ViewData["credit"] = user.Credit; ViewData["biz"] = _biz; ViewData["userInfo"] = userInfo; ViewData["paidOrders"] = paidOrders; ViewData["jssdkUiPackage"] = jssdkUiPackage; ViewData["cardExt"] = JsonConvert.SerializeObject(cardExt); return(View()); // 前端菜单:直接支付,跳转js支付,余额支付跳转/Home/CreditPay,套餐支付: }