关于开发微信红包遇到的问题

1.在本地环境开发时,遇到"签名错误"


关于参数拼接以及sign的MD5生成,微信官方已经给出详细的案例,这里不作说明。(需要注意的是参数的排序以及为空的字段不参与md5加密)
https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=4_3


在此列出我遇到的问题:


1.1通过微信官方提供的校验页面,能确定sign生成没有问题,在请求参数中不包含中文的情况下可以发起。
这里的解决思路是:
将生成的xml字符串在发起请求时,做以下编码处理:
xmlStr = new String(xmlStr.getBytes(), "ISO8859-1");  


1.2做了以上修改后仍不生效,需要注意jvm的默认编码问题。
由于我使用tomcat进行部署,这里以tomcat作说明。
找到tomcat安装目录下的catalina.bat文件(linux环境下为catalina.sh)进行配置
set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8
设置完后可以在在程序中加上判断是否生效的检查代码:


如果能够正常设置为UTF-8则能正常发起带中文参数的微信红包


但我多次确认设置下一直显示GBK,遂另找方法,最后解决思路:
新增一个系统环境变量,变量名"JAVA_TOOL_OPTIONS",变量值"-Dfile.encoding=UTF-8"


2由于是从一个公众号给另一个公众号的粉丝发红包,涉及“appid and openid不匹配”的问题。
2.1在微信开放平台(https://open.weixin.qq.com)中将两个公众号绑定在同一个开发平台账号下。
2.2执行红包赠送时,将发送者openid更换成unionid。
(access_token获取方法:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183)
(unionid获取方法:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140839)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值