Adyen生产环境Web Drop-In无法加载支付表单求助
生产环境调用Adyen Checkout Sessions接口报错:远程名称无法解析
已基于Adyen官方文档和.NET示例仓库完成集成,测试环境可正常处理卡交易,但切换到生产环境后,调用_checkout.Sessions(sessionsRequest)时触发以下错误:
{System.Net.WebException: The remote name could not be resolved: 'https'" & vbCrLf & " at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)" & vbCrLf & " at System.Net.HttpWebRequest.GetRequestStream()" & vbCrLf & " at Adyen.HttpClient.HttpUrlConnectionClient.Request(String endpoint, String json, Config config, Boolean isApiKeyRequired, RequestOptions requestOptions)" & vbCrLf & " at Adyen.Service.ServiceResource.Request(String json, RequestOptions requestOptions)" & vbCrLf & " at Adyen.Service.Checkout.Sessions(CreateCheckoutSessionRequest createCheckoutSessionRequest)" & vbCrLf & " at clients_site.Confirm.GetPaymentForm() in C:\www\Confirm.aspx.vb:line 70}
已完成的配置:
- 正确设置
liveEndpointUrlPrefix、生产环境API密钥 - 已将站点添加至API凭证的允许来源列表
- 测试环境可正常加载支付表单
相关代码如下:
<WebMethod(EnableSession:=True), ScriptMethod()> Public Shared Function GetPaymentForm() As Object Dim orderId As String = HttpContext.Current.Session("OrderID") Dim _connString As String = Config.StrWebConnection() Dim cart As New ShoppingCart(_connString) Dim dt = cart.GetOrderInfo(orderId) Dim isGlobal = IsGlobalSite(Config.SiteUrl) Dim liveEndpointUrlPrefix = If(Config.LiveEndpointUrlPrefix = "", Nothing, Config.LiveEndpointUrlPrefix) Dim env = If(Int32.Parse(Config.AdyenEnvironment) = 0, Model.Enum.Environment.Test, Model.Enum.Environment.Live) Dim clientCheckout = New Client(Config.ApiKey, env, liveEndpointUrlPrefix) Dim _checkout = New Checkout(clientCheckout) Dim cartTotal = Utilities.SanitizeCurrency(GetCartTotal(orderId, HttpContext.Current.Session("user_name"))) Dim sessionsRequest = New CreateCheckoutSessionRequest() sessionsRequest.MerchantAccount = Config.MerchantAccount(0) sessionsRequest.MerchantOrderReference = orderId Dim Amount = New Amount("USD", Convert.ToInt64(String.Format("{0:f2}", cartTotal).Replace(".", String.Empty))) sessionsRequest.Amount = Amount sessionsRequest.DeliverAt = DateTime.Parse(DateTime.Now.AddDays(3).ToString("yyyy-MM-dd")) sessionsRequest.ExpiresAt = DateTime.Parse(DateTime.Now.AddDays(1).ToString("yyyy-MM-ddTHH:mm:ssK")) sessionsRequest.ShopperEmail = dt.Email sessionsRequest.ShopperLocale = "en-us" sessionsRequest.ShopperReference = HttpContext.Current.Session("ShopperReference").ToString().ToUpper() sessionsRequest.Channel = PaymentRequest.ChannelEnum.Web sessionsRequest.Reference = String.Format("ClientSite_{0}", orderId) sessionsRequest.RecurringProcessingModel = CreateCheckoutSessionRequest.RecurringProcessingModelEnum.CardOnFile 'req.IsRecurring ? CreateCheckoutSessionRequest.RecurringProcessingModelEnum.Subscription : CreateCheckoutSessionRequest.RecurringProcessingModelEnum.CardOnFile; sessionsRequest.EnableRecurring = False 'req.IsRecurring sessionsRequest.EnableOneClick = True '!req.IsRecurring 'required for 3ds2 redirect flow sessionsRequest.ReturnUrl = Config.SiteUrl & "/Confirm.aspx?" Dim json As String Try Dim CreateCheckoutSessionResponse = _checkout.Sessions(sessionsRequest) json = CreateCheckoutSessionResponse.ToJson() Catch ex As Exception Console.WriteLine(ex.Message) System.Diagnostics.Debug.WriteLine(ex.Message) Return 0 End Try Return json End Function
排查方向
liveEndpointUrlPrefix配置校验:确认该值格式为live-xxxxxx(不含https://或域名),若配置中误加https字符串,会导致客户端拼接出无效的API端点URL,触发DNS解析错误。- 生产网络连通性:检查服务器是否能访问Adyen生产域名(如
live.adyen.com),排查防火墙、代理或DNS解析是否阻止了外部请求。 - 客户端初始化参数:验证
env是否正确设置为Model.Enum.Environment.Live,确保客户端切换到生产端点模板;同时确认生产API密钥无误。 - 端点URL日志排查:在代码中添加日志输出客户端生成的完整API端点,确认是否存在格式错误(如
https://https/...这类无效地址)。
内容的提问来源于stack exchange,提问作者Intermediary Developer
相关产品推荐
相关产品推荐

