微信支付的开发,作为微信公众号开发的难点之一,另不少开发者颇为头痛。市面上微信支付开发成本动辄上万,也让刚创业的小公司无力负担。本次文章将详细介绍微信支付中微信原生红包的开发思路,并提供源代码。以供各位同好交流。

开发效果

如图1所示,微信公众号9五后不害羞(love_thyc)发放红包效果。微信红包分为:普通红包、裂变红包。本次介绍普通红包。

图 1

开发前准备

1.已认证的服务号;

2.开通微信支付功能。

开启“微信支付——产品中心——现金红包”此项功能,如图2所示

图 2

3.微信支付开发文档:

https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_4&index=3

开始开发

1.开发思路:笔者利用mindject整理了程序结构及调用关系。在微信后台“学点编程”(shijiawen6)回复“红包思路”获取红包开发思路图片。

2.接口:POST方式,带XML参数。

https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack;

3.参数拆分:因发送红包的参数非常多,如图3所示,逐一介绍。

图 3

1)nonce_str:随机字符串,用来生成签名。随机字符串签名可以通用,26个字母,10个数字,字符串最长为36。随机字符串程序如下,因为程序较为简单,所以写在redPacketPay.php主程序的类中,用$this->调用。

图 4

2)sign:签名。签名的获取较为复杂所以并没有在redPacketPay.php中拼装。

(签名算法:https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=4_3)

分析签名算法,它可以拆分为:

a)在支付平台中设置密钥,密钥需保密。

图 5

b)检查其他参数是否已生产。

图 6

c)对参数按照 key=value 的格式,并按照参数名 ASCII 字典序排序,并拼接为字符串,如图7所示。其中ksort()函数作用为ASCII 字典序排序;formatQueryParaMap()函数作用为拼接为字符串,如图8所示。

图 7

图 8

d)用MD5加密算法获得签名,如图9所示。

图 9

3)mch_billno:订单编号=商户号+YYMMDDHHIISS+RANDOM(1000,9999)把时间补全HHIISS有六位,再来一个随机四位数即可。

4)mch_id:商户号,注册了支付平台就有的

5)wxappid:appID

6)send_name:发送方名称

7)nick_name:如果做为第三方支付开发方,帮商户开发时候,此字段指开放方(非必须)

8)re_openid:用户的openid,传参的时候直接用$object->FromUserName

9)total_amount:付款金额,分为单位,最小为100分,即1元

10)total_num:发红包总数,普通红包1,裂变红包可以为其他值

11)wishing:红包祝福语

12)client_ip:新浪云的ip是动态的,所以要动态获取,获取方式如图10所示。

图 10

13)act_name:活动信息

14)remark:备注信息,

以上参数均为必须,完成参数设置之后,需要将参数拼装为XML数据。

4.组装XML数组,其方法如图11所示。

图 11

5.发起POST请求。涉及金钱,所以要使用证书,证书对于每个商户是唯一的,必须妥善保管,方法如图12所示。

图 12

全文总结

当执行完POST请求后,即完成发红包动作。微信原生红包的开发其实并不复杂,只是涉及到较多的参数,需要运用较多的方法。建议利用笔者提供的“红包思路”先梳理一下开发的流程,再结合源代码进行开发。

微信开发五之微信红包开发相关推荐

  1. 移动软件开发五——仿微信发现界面

    2022年夏季<移动软件开发>实验报告 一.实验目标 模仿微信"发现"页创建列表布局,学习使用Textview imageview.LinearLayout 二.实验步 ...

  2. 微信小程序红包开发 小程序发红包 开发过程中遇到的坑 微信小程序红包接口的...

    最近公司在开发一个小程序红包系统,客户抢到红包需要提现.也就是通过小程序来给用户发红包. 小程序如何来发红包呢?于是我想到两个方法. 之前公众号开发一直用了的.一个是红包接口,一个是企业支付接口.一开 ...

  3. 【微信公众号发红包转账】微信公众号上手机网页接收请求,通过公众号给用户发红包 开发流程...

    有了微信支付 的开发做铺垫,相关的微信其他业务处理起来逻辑就能清晰很多. 准备好这两个架包 ------------------------------------------------------ ...

  4. java 红包接口开发_java调用微信现金红包接口的心得与体会总结

    这几天看了下之前写的有关微信支付的博客,看的人还是挺多的,看了下留言不知道是因为博客写的不够细还是什么情况,大多都找我要源码,我觉得吧程序员还是需要有这么一个思考的过程,因此没直接给源码,俗话说&qu ...

  5. 企业微信三方开发(五):扫码登录

    其他链接 初识微信开发 企业微信三方开发:注册企业微信服务商 企业微信三方开发(一):回调验证及重要参数获取 企业微信三方开发(二):获取access_token 企业微信三方开发(三):网页授权登录 ...

  6. 微信小程序红包开发思路 微信红包小程序开发思路讲解

    之前公司开发小程序红包,将自己在开发的过程中遇到的一些坑分享到了博客里.不少人看了以后,还是不明白怎么开发.也加了我微信咨询.所以今天,我就特意再写一篇文章,这次就不谈我开发中遇到的坑了.就主要给大家 ...

  7. 微信红包 开发前的准备

    今天的开发目标是实现微信红包功能.先记录需要进行微信红包开发前的准备工作. 1.进行微信支付:需要注册认证的服务号或者认证的企业号 2.若要进行红包开发,前置准备条件 入住时间超过90天: 连续交易正 ...

  8. php微信公众号红包开发,php微信公众号开发之现金红包

    本文实例为大家分享了php微信公众号之现金红包的具体代码,供大家参考,具体内容如下 以下有关微信支付中现金红包的开发参考自微信支付开发文档,如下图所示. 现金红包,是微信支付商户平台提供的营销工具之一 ...

  9. 微信现金红包asp源码开发的微信一物一码红包系统,asp微信现金红包源码

    最近接了一个生产万能胶的客户红包开发的要求,他想实现在他所有产品包装上贴一个小标签,上面有二维码可以扫码关注他的公众号,下面是一个刮刮银,刮开后是上串数字码,别人关注他的公众号后就可 以在公众号下面的 ...

  10. 微信公众号开发五秒内不能返回结果防止微信服务器再次通知

    在公众号开发中如果我们不能再五秒内给予微信服务器响应,那么微信服务器就会断开连接并且重新发起通知,会连续通知三次. 这样会造成一个问题就是,我们的业务逻辑如果不能保证五秒内回复微信的通知那么微信就会给 ...

最新文章

  1. python数据结构与算法:单向链表
  2. 英文题,我恨你啊..
  3. 【ArcGIS风暴】Win10操作系统ArcGIS许可License无法启动的解决方法汇总(绝对成功!)
  4. .NET反射、委托技术与设计模式
  5. 手写实现简单的Vue事件总线
  6. 计算机二级安装64位的还是,电脑操作系统安装,该选择32位还是64位?
  7. gensim将python dict字典形式的词向量导入到word2vec模型(同时适合gensim4.0+版本)
  8. 人人都可以写的可视化Python小程序第二篇:旋转的烟花
  9. 1013 数素数 (20 分)—PAT (Basic Level) Practice (中文)
  10. [翻译] Canvas 不用写代码的动画
  11. 扇贝有道180929每日一句
  12. CentOS查看和修改PATH环境变量的方法 (转)
  13. ubuntu设置成中文详细贴图教程
  14. JAVA 下载Word文档
  15. java导出excel水印_springboot为导出的pdf和excel加水印
  16. Rust LLDB 调试入门指北
  17. HTML——表白(效果+代码)
  18. cogs 2. 旅行计划
  19. 安卓程序打包到安卓手机上运行Android程序
  20. Ubuntu linux下运行xv6

热门文章

  1. 【Firefly云手机】最高可虚拟720台手机,支持一键操控,应用多开
  2. 【简单易懂的Unity5 Shader着色器入门教程】 笔记
  3. 荣耀20青春版装鸿蒙系统,三种颜色三种工艺 荣耀20青春版解锁你的美
  4. 权力来自于他人的服从
  5. 删除后别人的微信号变成wxid_腾讯开放微信号修改,一年一次,方法简单
  6. 合肥工业大学计算机学院任恒,合肥工业大学计算机与信息学院导师教师师资介绍简介-△张玉红...
  7. 期末前端web大作业:餐饮美食网站设计与实现——美食菜品网页(16页)
  8. 计算机视觉与音乐,探索计算机视觉与音频的交叉:基于视觉的音乐相关研究Review...
  9. 手机CPU天梯图2021年6月版
  10. vue中使用天气插件(和风天气)