关于thinkphp3.2 集成支付宝手机网站支付 $_GET 参数 被转义[小结]


   温州网站建设最近在做支付宝集成项目,开始使用thinkphp3.2做的,到集成的时候 发现,验证sign一直报错。开始以为是百度了很多文档,在排除一些常规的错误,如:支付宝公钥写错,跳转地址不能带参数,以及要放在公网上测试等。最后发现 错误实在:有的说是 $result = (bool)openssl_verify($data, base64_decode($sign), $res, OPENSSL_ALGO_SHA256);  ,在饶了一个大圈之后,通过比较 demo成功的参数 和 项目实际获得参数 后,在根据 网上说的参数被转义的说,最终确定是 thinkphp3.2在接受支付宝通知的参数时,sign的值 其中的特殊支付被转义了。其他资料说的太简单,现在把我自己的案例分享出来,供大家参考(使用支付宝最新手机网站支付sdk):


public function return_url()
	{	  
			//$_GET['sign']=utf8_decode($_GET['sign']);
			unset($_GET['_URL_']);
			$_GET['sign']=urlencode($_GET['sign']); 
			$_GET['sign'] = str_replace("%2B","+",$_GET['sign']);
			$_GET['sign'] = str_replace("%3D","=",$_GET['sign']);
			$_GET['sign'] = str_replace("%2F","/",$_GET['sign']);
			
			$arr['sign']=$_GET['sign'];
			$arr=$_GET;	
			
			$alipay_config=array();
			$alipay_config=C("alipay_config");			
			$aop = new \AopClient();
			$aop->gatewayUrl =$alipay_config['gatewayUrl'];
			$aop->appId = $alipay_config['app_id'];
			$aop->rsaPrivateKey = $alipay_config['merchant_private_key'];
			$aop->alipayrsaPublicKey=$alipay_config['alipay_public_key']; 
			$aop->apiVersion = '1.0';
			$aop->postCharset= $alipay_config['charset'];
			$aop->format='json';
			$aop->signType=$alipay_config['sign_type'];
			$result = $aop->rsaCheckV1($arr, $alipay_config['alipay_public_key'], $alipay_config['sign_type']);	
			
			// 以下部分省略
			.......

以上资料由温州天时网站建设独家发布。






注:本文转载自拾图网[http://www.tshinet.com],转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除。
上一篇 下一篇

淘宝热销

  • Mistine小黄帽防晒霜乳SPF50泰版面部防紫外线隔离男女军训蜜丝婷

    【推荐理由】赠运费险

    【优惠券】20   【券后价】59.00

    【下单链接】18¥ CZ0001 G5fHdEqOsnB¥

    >>>>>> 马上打开

  • G7旗舰店越南进口美式纯黑咖啡粉速溶无糖0脂减燃正品学生提神

    【推荐理由】库存紧张,好评过万

    【优惠券】3    【券后价】26.90

    【下单链接】27¥ CZ0001 zb0bdEqLV7G¥

    >>>>>> 马上打开