[小程序]怎样使用prepay_id作为form_id发送模板消息?
发布于 6 年前 作者 leichao 1551 次浏览 来自 问答

文档中说form_id填写prepay_id也可以发送模板消息。

于是我服务器存储了支付过程中的prepay_id,准备在发送订单发货消息的时候用。

但是我服务器用prepay_id作为form_id的时候却遇到了错误"errcode":41028,“errmsg”:“invalid form id hint: [uuWyOA0810ge20]”

"form_id": "wx20170304215222954be2703f0862", //这里写成prepay_id=wx20170304215222954be2703f0862一样没用

数据格式不对,还是说支付完了prepay_id就没用了?

问题很久以前就解决了,解决方法:

找到原因了,是将prepay_id存储到数据库时字符长度设置的不对,prepay_id长度大于数据库字段给出的存储长度,被截断了,所以不完整的prepay_id也就无效了

9 回复

坑!模板消息只能发送给发起支付或提交表单的人!!我们现在做订单消息通知,订单都无法通知到商家!

找到原因了,是将prepay_id存储到数据库时字符长度设置的不对,prepay_id长度大于数据库字段给出的存储长度,被截断了,所以不完整的prepay_id也就无效了

还有,我发现向同一个ID发送模板消息太频繁也会导致消息收不到,可能是防止利用模板消息做广告吧

描述中长度是正常的吗,把问题说清楚啊

求解,我的也是这样,我的prepay_id完整的,但还是一直报invalid form id hint

我曹,微信开发者工具 v1.01.171019不行,但是用真机就可以。说明微信那边可能会校验prepay_id的来源。各位同仁一定要用真机测。。。

一定要使用__真机__测试,无论是取form_id还是prepay_id  我尝试过了至少在v1.01.17913的开发者工具版本下即使支付成功了这个prepay_id还是不能用,但是我在手机小程序上支付完马上就收到消息了!

真机就可以~~~ 官方文档也不提醒一下。。。。

哎,我也是一样,问了官方也不回答。同样的接口,只是弄了一个表单提交来的formid,其他参数不改,就可以发送模板消息。有时候真的觉得很无奈。文档都看烂了。

回到顶部