yansongda / pay

可能是我用过的最优雅的 Alipay/WeChat/Douyin/Unipay/江苏银行 的支付 SDK 扩展包了
http://pay.yansongda.cn
MIT License
5.01k stars 1.03k forks source link

微信支付成功后返回页面问题 #65

Closed anyforever closed 6 years ago

anyforever commented 6 years ago

包版本号

2

问题描述

用1.x版本的时候,是在微信返回值外包了层script,能返回到支付的地址上 return '<script>window.location.href = "'.$pay->driver('wechat')->gateway('wap')->pay($config_biz).'";</script>'; 用2.x的时候,微信方法会直接返回跳转刷新的代码了,但是返回的不是支付打开的那个地址是再之前的那个页面会被刷新,因为我做的是那个页面是商品详情页,下单成功后ajax返回了下单信息,然后在详情页上点的支付链接 这样就造成了支付完之后原来那个商品的详情页被刷新了,不能跳到成功支付的提示页面上去。 有人遇到这种情况,怎么解决的么? `HTTP/1.0 302 Found Cache-Control: no-cache, private Date: Wed, 10 Jan 2018 07:52:38 GMT Location: https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx20180110155238cacaca91720685509580&package=3552120091

<!DOCTYPE html>

Redirecting to https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx20180110155238cacaca91720685509580&package=3552120091 Redirecting to https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx20180110155238cacaca91720685509580&package=3552120091. ` ## 代码 涉及到 异步通知、同步通知 的问题,请将 nginx/Apache 的相关日志贴出来 ## 报错详情
yansongda commented 6 years ago

v1.x 与 v2.x 两个大版本是不兼容的版本哦,建议您升级时看看文档。

看您的意思是只想获取跳转的链接。您可以通过 $wechat->wap($order)->getTargetUrl(); 直接获取H5 支付的跳转链接。

感谢支持

anyforever commented 6 years ago

@yansongda 嗯。可能表述不太对。知道这两个版本升级比较大,所以在改为版本2,在测试中,遇到这个问题。 我记得微信那边有个referrer的要求,不知道是不是他自动按这个跳的呢。 我尝试一下上面获取的地址的方案。

anyforever commented 6 years ago

嗯。试了,用script跳转获取到的url方式可以跳转回去成功页面,不再刷新之前的详情页了

yansongda commented 6 years ago

好的。

感谢支持