现金红包 接口开发注意事项

 

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

 参考连接:https://www.cnblogs.com/wenhx/p/WeChat-RedPacket-Interface.html

 

1.红包发送功能的实现:

需要请求微信的后台接口:https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack  (post方式)

我们需要传递正确的请求参数,以xml的格式发送到微信后台;该接口会响应对应的结果参数,根据具体的错误码,来调试代码

2.红包是以分为单位:

 必须大于100分,小于20000分,也就是[1,200]元

 小于1元,报错"签名错误"

 total_num值必须为1

3.签名生成算法:

  值为空的不用参与签名

  key(商户支付密钥)值不需要参与字典排序,其他参数排完序后,附加到最后面进行加密。最后附加的key是微信支付的API密钥,而不是公众平台的密钥

  传送的sign参数不参与签名,因为我们现在是需要计算sign参数,sign值还没有计算出来,是没法进行签名计算的

  计算签名的参数个数:与传输的参数保持一致,但除了sign参数本身。

  在线调试签名:直接在文本框内填入对应的参数值,检查发送的请求参数是否正确。如果报错签名错误,那就一定是签名错误,仔细检查参数是否正确,参数的值是否正确!!!

4.scene_id是非必须字段,可以传递,也可以不传递

  当红包金额大于200或者小于1元时必传

  如果报错SIGN_ERROR、PARAM_ERROR,不妨取消该参数的传递,或许就成功了。 我是因为该参数,折腾了好几个小时,费劲。

5.商户证书:

  需要在微信商户平台下载,之后在本地导入

  格式有:pkcs12格式(apiclient_cert.p12)、pem格式(apiclient_cert.pem)、密钥pem格式(apiclient_key.pem)

  apiclient_cert.p12是商户证书文件,除PHP外的开发均使用此证书文件。

  windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000)

6.用户无需关注你的公众号:

  如果关注了你的公众号,红包会通过公众号发送,如果没有,以"服务通知"的样式发送。

7.红包样式:

普通红包那种叫红包『防伪消息』,关注时间大于 50小时候才会发

模板消息:新关注的用户,时间小于50小时,所以会发模板消息

折腾大半天,红包终于发放到了你的微信上,心里顿时开心,终于可以松口气了,结果妈蛋发现样式不是我们平常的样式,此时别怀疑代码,是微信设置的消息触达规则,微信红包的文档中有描述。

8.回复success或空串

如果我们不想对用户的消息进行回复,那么直接可以返回"success"或者空串,微信服务器不会对其进行任何处理,并且不会发起重试

微信开发文档中这样写到:

(1)、直接回复success(推荐方式) (2)、直接回复空串(指字节长度为0的空字符串,而不是XML结构体中content字段的内容为空)

原文地址:https://www.cnblogs.com/quan-coder/p/9188473.html