最近在做微信支付,有一个问题一直困扰着我。根据官方文档,支付结果回调url不能穿参数,那问题来了,微信如何把参数告知我?文档上指的不能传参数指的是不能用Get,实际是用post传过来的? 还有就是,回调的接口是restful的webservice是否可以?希望做过的大神,给予解答,谢谢!
文档的意思是指你给第三方的支付成功的回调地址的实参中的url不能包含参数。
比如你可以传http://xxx.com/notify
但不能传http://xxx.com/notify?orderid=....
第三方会直接将回调结果post到你指定的合法url上(http://xxx.com/notify)
回调的契约见其开发文档,比如它里面说是form post,有哪些参数,你就要这边通过form方式接受哪些参数并验签及后续逻辑。
如果它是json post,那么你就要从请求流中读取json字符串,根据其接口文档定义进行相关解析或反序列化操作。
支付回调最重要的是对请求的合法性做验证(验签),业务规则验证(已经支付成功且支付金额与你预期金额一致),并发问题(同一个请求多次post过来你仅能做一次发货动作)
我记得微信支付 有2个步骤
1.支付码
2.付款支付
其次,我记得 可以通过 单据号 获取微信支付的所有信息
最后 我记得返回的值里面是有单据号的 如果你要什么信息 再找 微信支付查 这个也就不需要返回其他的什么了
所以请问 你想要微信传什么?
post方式可以。Restful不影响的,
只是微信回调的一个方法,不需要传递参数。直接创建应答对象
ResponseHandler resHandler = new ResponseHandler(request, response);
后面用Map 接收就可以。