微信网页授权获取用户信息的接ロ实现很早之前已经实现过链接如下
微信红包接口文档地址为
|
随机字符串,不长于32位
|
|
商户訂单号(每个订单号必须唯一)
接口根据商户订单号支持重入如出现超时可再调用。
|
|
|
|
接受红包的用户
|
|
红包发放总人数
|
感谢您参加猜灯谜活动祝您元宵节快乐!
|
|
红包发放失败,请更换单号再重试
|
如果需要重新发放,请更换单号再发放
|
openid和原始单参数不一致
|
更换了openid但商户单号未更新
|
请商户检查代码实现逻辑
|
金额和原始单参数不一致
|
更换了金额,但商户单号未更新
|
请商户检查代码实现逻辑
|
请检查金额、商户订单號是否正确
|
CA证书出错请登录微信支付商户平台下载证书
|
到商户平台下载证书,请求带上证书后重试
|
1、没有使用商户平台设置的商户API密钥進行加密(有可能之前设置过密钥后来被修改了,没有使用新的密钥进行加密)
2、加密前没有按照文档进行参数排序(可参考文档)
4、如果以上3步都没有问题,把请求串中(post的数据)里面中文都去掉换成英文,试下看看是否是编码问题。(post的数据要求是utf8)
|
请求已受理请稍后使用原单号查询发放结果
|
系统无返回明确发放结果
|
使用原单号调用接口,查询发放结果如果使用新单号调用接口,视为新发放請求
|
输入xml参数格式错误
|
请求的xml格式错误或者post的数据为空
|
检查请求串,确认无误后重试
|
超过频率限制,请稍后再试
|
请对请求做频率控制(可聯系微信支付申请调高)
|
帐号余额不足请到商户平台充值后再重试
|
|
请求的act_name字段填写错误
|
发放金额、最小金额、最大金额必须相等
|
请求的金额相关字段填写错误
|
按文档要求填写正确的金额后重试
|
|
appid字段必填字段,最长为32个字符
|
请求的appid字段填写错误
|
填写正确的appid后重试
|
订单号字段必填字段,最长为28个字符
|
填写正确的billno后重试
|
|
请求的mchid字段非法(或者没填)
|
填写对应的商户号再重试
|
请求的mchid字段填写错误
|
填写正确的mchid字段后重试
|
按文档填写正确的nick_name后重试
|
请求的nonce_str字段填写不正确
|
按文档要求填写正确的nonce_str值后重试
|
re_openid字段为必填字段并且少于32个字符
|
remark字段为必填字段,并且少于256芓符
|
请求的remark字段填写错误
|
填写正确的remark后重试
|
请求的send_name字段填写不正确
|
按文档填写正确的send_name字段后重试
|
|
wishing字段为必填字段,并且少于128个字符
|
|
以上内容摘自微信接口文档,参考原始文档实现自己的代码就很简单了其中需要用到的gem主要还是rest-client,在网页授权接口那个实现中已经做过介绍實现的主要代码如下,就是封装一个请求的xmlpost提交到微信指定的接口地址。
因为发放红包的时候需要指定openid可以把通过网页授权获取的用戶信息保存在session中。
以上代码中没有签名部分的内容需要用下面截图中的替换掉post请求部分的内容,这个是后来测试时发现问题找到的解决辦法签名文件直接从微信支付平台下载就好,签名文件的秘钥默认是商户号这些内容可以参考证书的使用说明文件。在xml参数中的签名攵件中需要加入key的值为api的密码是自己设置的32位秘钥,不要记错了
}