H5微信支付异常

bug问题 · cococup · 于 4年前 发布 · 1483 次阅读

1,linux,多商户分销 2,严格按照http://www.fecmall.com/doc/fecshop-guide/instructions/cn-1.0/guide-fecshop_payment_wx_method.html,文档做了几次检查 2,手机浏览器支付成功,但支付页未刷新,订单状态显示待支付 3,在微信公众号里支付,点击支付,显示异常页面,跟踪页面提交地址为:http://XXXXX.com/payment/wxpayjsapi/start/payment/wxpayjsapi/start

共收到 2 条回复
Fecmall#14年前 0 个赞

微信内部使用微信支付报错排查:

对代码进行输出

./vendor/fancyecommerce/fecshop/lib/wxpay/example/WxPay.JsApiPay.php

public function GetOpenid()
	{
		//通过code获得openid
		if (!isset($_GET['code'])){
			//触发微信返回code码
			$baseUrl = urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].$_SERVER['QUERY_STRING']);
			$url = $this->__CreateOauthUrlForCode($baseUrl);
			Header("Location: $url");
			exit();
		} else {
			//获取code码,以获取openid
		    $code = $_GET['code'];
			$openid = $this->getOpenidFromMp($code);
			return $openid;
		}
	}

进行输出:

输出为:

结果原因,因为使用了反向代理,致使搞乱了传递的$_SERVER 参数,使 $_SERVER['REQUEST_URI']$_SERVER['QUERY_STRING']的值相同,进而导致的问题,需要排查nginx反向代理的问题。

Fecmall#24年前 0 个赞

对于 $_SERVER['REQUEST_URI']$_SERVER['QUERY_STRING'] 参数:

1,http://localhost/aaa/ (打开aaa中的index.php)
结果:
$_SERVER['QUERY_STRING'] = "";
$_SERVER['REQUEST_URI']  = "/aaa/";
$_SERVER['SCRIPT_NAME']  = "/aaa/index.php";
$_SERVER['PHP_SELF']     = "/aaa/index.php";

2,http://localhost/aaa/?p=222 (附带查询)
结果:
$_SERVER['QUERY_STRING'] = "p=222";
$_SERVER['REQUEST_URI']  = "/aaa/?p=222";
$_SERVER['SCRIPT_NAME']  = "/aaa/index.php";
$_SERVER['PHP_SELF']     = "/aaa/index.php";

3,http://localhost/aaa/index.php?p=222&q=333
结果:
$_SERVER['QUERY_STRING'] = "p=222&q=333";
$_SERVER['REQUEST_URI']  = "/aaa/index.php?p=222&q=333";
$_SERVER['SCRIPT_NAME']  = "/aaa/index.php";
$_SERVER['PHP_SELF']     = "/aaa/index.php";
添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics