微信红包的坑~参数详解和密钥的坑

简介:

对于之前微信支付的文章中,我们谈过了它的很多"坑",而在进行红包开发时,这种坑依然不少,主要是微信为我们提供的各种账号和密钥太多,把开发人员都搞晕了,下面大叔总结一下:

一 微信支付的密钥

统一使用公众号密钥:Key

二 微信红包的密钥

统一使用商户账号的密钥:AppSecret

三 红包进行签名要注意的

使用场景可以排除,如果大于200元时才需要这个参数,如果你随便写一个场景,而商户平台没有开通,反而会报错

四 向微信发送红包请求时要带上证书

需要现时读取apiclient_cert.p12的签名内容,因为https是双向检验的,在.net平台,程序要加载p12这个证书,并发到微信;在操作系统上,还要安装这个证书,两者缺一不可.

public static string Post(string url, string param)
        {
            try
            {
                string cert = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "apiclient_cert.p12");
                string password = WxPayConfig.MCHID;
                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
                X509Certificate cer = new X509Certificate(cert, password);

                HttpWebRequest webrequest = (HttpWebRequest)HttpWebRequest.Create(url);
                webrequest.ClientCertificates.Add(cer);
                webrequest.Method = "post";

                byte[] someBytes = System.Text.Encoding.UTF8.GetBytes(param);
                webrequest.ContentLength = someBytes.Length;
                Stream reqStream = webrequest.GetRequestStream();
                reqStream.Write(someBytes, 0, someBytes.Length);
                reqStream.Close(); //必须要关闭 请求

                HttpWebResponse webreponse = (HttpWebResponse)webrequest.GetResponse();
                Stream stream = webreponse.GetResponseStream();
                string resp = string.Empty;
                using (StreamReader reader = new StreamReader(stream))
                {
                    resp = reader.ReadToEnd();
                }
                return resp;
            }
            catch (Exception e)
            {
                Lind.DDD.Logger.LoggerFactory.Instance.Logger_Info(string.Format("微信红包接口日志:错误代码:{0} {1}", e.Message, e.StackTrace));
                throw;
            }

五 签名时的key一定要用AppSecret,下面代码是错误的

有了上面几个经验之后,我们的红包模块才可以测试成功!

真的挺不容易的,尤其是.net平台,还要安装个人证书,为证书添加用户权限等.

本文转自博客园张占岭(仓储大叔)的博客,原文链接:微信红包的坑~参数详解和密钥的坑,如需转载请自行联系原博主。

目录
相关文章
|
测试技术 API
微信支付开发(9) 沙箱密钥
关键字:微信支付 微信支付v3 沙箱密钥 getsignkey作者:方倍工作室原文: http://www.cnblogs.com/txw1958/p/wxpayv3-signkey.html    一、仿真测试系统 为降低商户测试门槛,微信支付团队开发了一套独立的仿真测试系统。
2766 0
|
6天前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的异常处理和日志记录,强调其对确保应用稳定性和用户体验的重要性。异常处理涵盖前端(网络、页面跳转、用户输入、逻辑异常)和后端(数据库、API、业务逻辑)方面;日志记录则关注关键操作和异常情况的追踪。实践中,前端可利用try-catch处理异常,后端借助日志框架记录异常,同时采用集中式日志管理工具提升分析效率。开发者应注意安全性、性能和团队协作,以优化异常处理与日志记录流程。
|
6天前
|
小程序 安全 数据安全/隐私保护
微信小程序全栈开发中的身份认证与授权机制
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的身份认证与授权机制。身份认证包括手机号验证、微信登录和第三方登录,而授权机制涉及角色权限控制、ACL和OAuth 2.0。实践中,开发者可利用微信登录获取用户信息,集成第三方登录,以及实施角色和ACL进行权限控制。注意点包括安全性、用户体验和合规性,以保障小程序的安全运行和良好体验。通过这些方法,开发者能有效掌握小程序全栈开发技术。
|
6天前
|
JavaScript 前端开发 小程序
微信小程序全栈开发之性能优化策略
【4月更文挑战第12天】本文探讨了微信小程序全栈开发的性能优化策略,包括前端的资源和渲染优化,如图片压缩、虚拟DOM、代码分割;后端的数据库和API优化,如索引创建、缓存使用、RESTful API设计;以及服务器的负载均衡和CDN加速。通过这些方法,开发者可提升小程序性能,优化用户体验,增强商业价值。
|
6天前
|
小程序 前端开发 JavaScript
微信小程序全栈开发中的PWA技术应用
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中PWA技术的应用,PWA结合Web的开放性和原生应用的性能,提供离线访问、后台运行、桌面图标和原生体验。开发者可利用Service Worker实现离线访问,Worker处理后台运行,Web App Manifest添加桌面图标,CSS和JavaScript提升原生体验。实践中需注意兼容性、性能优化和用户体验。PWA技术能提升小程序的性能和用户体验,助力开发者打造优质小程序。
|
1月前
|
小程序 前端开发 程序员
微信小程序开发入门教程-小程序账号注册及开通
微信小程序开发入门教程-小程序账号注册及开通
|
6天前
|
SQL 安全 小程序
探索微信小程序全栈开发的安全性问题
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的安全性问题,包括数据安全、接口安全、隐私保护和代码安全。为解决这些问题,建议采取数据加密、使用HTTPS协议、身份认证与授权、输入验证、安全审计及漏洞扫描以及安全培训等措施。通过这些方法,开发者可提升小程序安全性,保护用户隐私和数据。
|
28天前
|
小程序 JavaScript
在使用微信小程序开发中用vant2框架中的Uploader 文件上传wx.uploadFile无反应和使用多图上传
网上有的说是bind:after-read="afterRead"的命名问题不支持-,但是我这儿执行了console.log("file",file);证明函数运行了。后来发现是multiple="true"原因开启了多图上传,如果是多图上传的话file就是数组了
25 2
|
1月前
|
移动开发 小程序 API
微信小程序的一些开发限制
微信小程序的一些开发限制
71 1
|
1月前
|
JSON 小程序 前端开发
微信小程序开发入门学习01-TDesign模板解读
微信小程序开发入门学习01-TDesign模板解读