C# 开发微信公众号现金红包发送,解决"IP地址非你在商户平台设置的可用IP地址"和”未能创建 SSL/TLS 安全通道“ 问题

本文分享了使用C#开发微信公众号现金红包功能的经验,详细介绍了如何解决IP地址验证及SSL/TLS安全通道创建的问题,包括正确配置证书、读取证书的方式及获取服务器IP地址的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C# 开发微信公众号现金红包发送,解决"IP地址非你在商户平台设置的可用IP地址"和”未能创建 SSL/TLS 安全通道“ 问题

近期在做涉及一个微信公众号微信发送红包的项目,参考微信支付文档,没有什么特别的。需要注意的是:
1、微信发送红包需要证书验证,下载API证书放至程序指定目录;
2、绑定IP,需要在 ”现金红包-产品设置-调用IP地址“ 里面设置,一定要IP地址,且程序发送所在服务器提交页面不能带有端口号,否则提示: IP地址非你在商户平台设置的可用IP地址(目前我测试是这么个情况)。这里如果是存放在虚拟主机,也不要用域名解析后的地址,可能也会提示“IP地址非你在商户平台设置的可用IP地址”这个错误。建议是:建立一个网页传到虚拟主机,获取主机的服务器IP地址即可。

  string AddressIP = string.Empty;
        foreach (IPAddress _IPAddress in Dns.GetHostEntry(Dns.GetHostName()).AddressList)
        {
            if (_IPAddress.AddressFamily.ToString() == "InterNetwork")
            {
                AddressIP = _IPAddress.ToString();
            }
        }
        Response.Write(AddressIP);

3、读取证书 这里如果使用的是framework4.0以下, 那么可能不会有tls11和tls12 需要强制转换一下即可 。另外一定要用

X509Certificate2 cer = new X509Certificate2(cert, certPassword, X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.MachineKeySet);

方式读取,否则会提示 ”未能创建 SSL/TLS 安全通道“

        string cert = certPath;

            ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
            ServicePointManager.Expect100Continue = true;
            ServicePointManager.SecurityProtocol = ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3
                                       | SecurityProtocolType.Tls
                                       | (SecurityProtocolType)0x300 //Tls11
                                       | (SecurityProtocolType)0xC00; //Tls12

            //X509Certificate2 cer = new X509Certificate2(cert, certPassword); //测试线下
        
            //这里很重要  如果提示  未建立SSL和TLS通道   证书必须用这个
            X509Certificate2 cer = new X509Certificate2(cert, certPassword, X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.MachineKeySet);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值