public async Task <string> GetOpenId(string code, string organizationId = null) { WeChatOpenIdResponseDTO result = null; BaseGateway gateway = null; if (string.IsNullOrEmpty(organizationId)) { gateway = _gateways.Get <WechatpayGateway>(); } else { WeChatAppConfiguration appConfig = _wechatAppConfigurationRepository.GetFiltered(o => o.OrganizationId == organizationId).FirstOrDefault(); if (appConfig != null) { var wechatpayMerchant = new PaySharp.Wechatpay.Merchant { AppId = appConfig.AppId, MchId = appConfig.MchId, Key = appConfig.Key, AppSecret = appConfig.AppSecret, SslCertPath = appConfig.SslCertPath, SslCertPassword = appConfig.SslCertPassword, NotifyUrl = appConfig.NotifyUrl }; gateway = new WechatpayGateway(wechatpayMerchant); } else { gateway = _gateways.Get <WechatpayGateway>(); } } var reqModel = new WeChatOpenIdRequestDTO { AppId = gateway.Merchant.AppId, Code = code, Secret = _configuration.WeChatAppSecret }; result = await _wechatApiProxy.CheckAuthCode(reqModel); //TODO:验签 return(result?.OpenId ?? string.Empty); }
public async Task AddWeChatPaymentNotifyMessage(WeChatPaymentNotifyMessageDTO model) { var orderDTO = await _orderServiceProxy.GetByOrderNo(model.OutTradeNo); if (orderDTO == null) { return; } var organizationId = ""; IGateway gateway = null; organizationId = orderDTO.OrganizationId ?? ""; WeChatAppConfiguration appConfig = null; if (!string.IsNullOrEmpty(organizationId)) { appConfig = _wechatAppConfigurationRepository.GetFiltered(o => o.OrganizationId == organizationId).FirstOrDefault(); } if (appConfig != null) { var wechatpayMerchant = new Merchant { AppId = appConfig.AppId, MchId = appConfig.MchId, Key = appConfig.Key, AppSecret = appConfig.AppSecret, SslCertPath = appConfig.SslCertPath, SslCertPassword = appConfig.SslCertPassword, NotifyUrl = appConfig.NotifyUrl }; gateway = new WechatpayGateway(wechatpayMerchant); } else { gateway = _gateways.Get <WechatpayGateway>(); } var key = ((WechatpayGateway)(gateway)).Merchant.Key; //if (model.Sign.ToUpper() != model.ToSign(key).ToUpper()) return; _wechatPaymentNotifyMessageRepository.Add(new WeChatPaymentNotifyMessage { CreatedOn = DateTime.Now, NotifyApiName = "AddWeChatPaymentNotifyMessage", MessageContent = JsonConvert.SerializeObject(model) }); _dbUnitOfWork.Commit(); }