微信公众号开发重复支付不成功问题

a4862769 2017-09-15 04:38:29
用的是微信内H5调起支付,根据返回res.err_msg的值判断支付是否成功的方式。
用户在关闭h5页面(左上角X)取消支付后(即res.err_msg的返回值为:get_brand_wcpay_request:cancel),页面会跳转到支付不成功页面,此时若想返回原页面(a标签href跳转)再次支付,点击支付后不进行任何操作,res.err_msg的值会返回get_brand_wcpay_request:fail。想问要实现返回后能再次支付同一订单需要传什么值回去还是要怎么操作?
...全文
460 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq852053457 2017-09-21
  • 打赏
  • 举报
回复
引用 8 楼 a4862769 的回复:
[quote=引用 7 楼 qq852053457 的回复:] [quote=引用 6 楼 a4862769 的回复:] [quote=引用 5 楼 qq852053457 的回复:] [quote=引用 4 楼 a4862769 的回复:] [quote=引用 3 楼 qq852053457 的回复:] 一个订单号只能生一个预付单 可以在统一下单接口的单号后面添加随机数 然后在回调取单号的时候再去掉随机数就好了
我使用的这种方式,能说的详细点吗[/quote] 你应该用到了微信的sdk吧 那个sdk里面有个统一下单的方法GetUnifiedOrderResult 里面有个out_trade_no 这个就是你的单号 你在后面加上一个随机数 那么你每次去支付的时候实际是在微信那边生成了不同的预付单 这样就可以重复支付了[/quote] 我内部把这个方法代码直接封装到自己方法里了,在页面请求支付前一步会请求封装好的方法并返回json类型data,然后会像上图那样请求,讲data中的值赋值,但请求参数中并不需要out_trade_no这个参数。。。。[/quote] 不可能吧 out_trade_no是商户订单号怎么可能不需要 你可以看下原生的sdk[/quote] 感觉有点乱 用的这种方式完成支付https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6[/quote] 你看下prepay_id生成的逻辑(文档:统一下单接口返回的prepay_id参数值,提交格式如:prepay_id=***) 统一下单api里面是有商户订单号的
a4862769 2017-09-18
  • 打赏
  • 举报
回复
引用 7 楼 qq852053457 的回复:
[quote=引用 6 楼 a4862769 的回复:] [quote=引用 5 楼 qq852053457 的回复:] [quote=引用 4 楼 a4862769 的回复:] [quote=引用 3 楼 qq852053457 的回复:] 一个订单号只能生一个预付单 可以在统一下单接口的单号后面添加随机数 然后在回调取单号的时候再去掉随机数就好了
我使用的这种方式,能说的详细点吗[/quote] 你应该用到了微信的sdk吧 那个sdk里面有个统一下单的方法GetUnifiedOrderResult 里面有个out_trade_no 这个就是你的单号 你在后面加上一个随机数 那么你每次去支付的时候实际是在微信那边生成了不同的预付单 这样就可以重复支付了[/quote] 我内部把这个方法代码直接封装到自己方法里了,在页面请求支付前一步会请求封装好的方法并返回json类型data,然后会像上图那样请求,讲data中的值赋值,但请求参数中并不需要out_trade_no这个参数。。。。[/quote] 不可能吧 out_trade_no是商户订单号怎么可能不需要 你可以看下原生的sdk[/quote] 感觉有点乱 用的这种方式完成支付https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6
qq852053457 2017-09-18
  • 打赏
  • 举报
回复
引用 6 楼 a4862769 的回复:
[quote=引用 5 楼 qq852053457 的回复:] [quote=引用 4 楼 a4862769 的回复:] [quote=引用 3 楼 qq852053457 的回复:] 一个订单号只能生一个预付单 可以在统一下单接口的单号后面添加随机数 然后在回调取单号的时候再去掉随机数就好了
我使用的这种方式,能说的详细点吗[/quote] 你应该用到了微信的sdk吧 那个sdk里面有个统一下单的方法GetUnifiedOrderResult 里面有个out_trade_no 这个就是你的单号 你在后面加上一个随机数 那么你每次去支付的时候实际是在微信那边生成了不同的预付单 这样就可以重复支付了[/quote] 我内部把这个方法代码直接封装到自己方法里了,在页面请求支付前一步会请求封装好的方法并返回json类型data,然后会像上图那样请求,讲data中的值赋值,但请求参数中并不需要out_trade_no这个参数。。。。[/quote] 不可能吧 out_trade_no是商户订单号怎么可能不需要 你可以看下原生的sdk
a4862769 2017-09-18
  • 打赏
  • 举报
回复
引用 5 楼 qq852053457 的回复:
[quote=引用 4 楼 a4862769 的回复:] [quote=引用 3 楼 qq852053457 的回复:] 一个订单号只能生一个预付单 可以在统一下单接口的单号后面添加随机数 然后在回调取单号的时候再去掉随机数就好了
我使用的这种方式,能说的详细点吗[/quote] 你应该用到了微信的sdk吧 那个sdk里面有个统一下单的方法GetUnifiedOrderResult 里面有个out_trade_no 这个就是你的单号 你在后面加上一个随机数 那么你每次去支付的时候实际是在微信那边生成了不同的预付单 这样就可以重复支付了[/quote] 我内部把这个方法代码直接封装到自己方法里了,在页面请求支付前一步会请求封装好的方法并返回json类型data,然后会像上图那样请求,讲data中的值赋值,但请求参数中并不需要out_trade_no这个参数。。。。
qq852053457 2017-09-16
  • 打赏
  • 举报
回复
引用 4 楼 a4862769 的回复:
[quote=引用 3 楼 qq852053457 的回复:] 一个订单号只能生一个预付单 可以在统一下单接口的单号后面添加随机数 然后在回调取单号的时候再去掉随机数就好了
我使用的这种方式,能说的详细点吗[/quote] 你应该用到了微信的sdk吧 那个sdk里面有个统一下单的方法GetUnifiedOrderResult 里面有个out_trade_no 这个就是你的单号 你在后面加上一个随机数 那么你每次去支付的时候实际是在微信那边生成了不同的预付单 这样就可以重复支付了
a4862769 2017-09-15
  • 打赏
  • 举报
回复
引用 3 楼 qq852053457 的回复:
一个订单号只能生一个预付单 可以在统一下单接口的单号后面添加随机数 然后在回调取单号的时候再去掉随机数就好了

我使用的这种方式,能说的详细点吗
qq852053457 2017-09-15
  • 打赏
  • 举报
回复
一个订单号只能生一个预付单 可以在统一下单接口的单号后面添加随机数 然后在回调取单号的时候再去掉随机数就好了
a4862769 2017-09-15
  • 打赏
  • 举报
回复
用的是C#,页面是Html 整个系统结构是MVC
a4862769 2017-09-15
  • 打赏
  • 举报
回复
麻烦各位大佬了 先续....

3,143

社区成员

发帖
与我相关
我的任务
社区描述
微信开发即微信公众平台开发,将企业信息、服务、活动等内容通过微信网页的方式进行表现,通过二次开发可以将公众账号由一个媒体型营销工具转化成提供服务的产品。
社区管理员
  • 微信开发
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧