php 微信支付 传参数,基于PHP的微信支付教程

解决页面重定向问题

1,页面重定向的解决方法

1)使用SECTION,在第一次进入页面,把传递过来的数据保存到SECTION,重定向后再取出来;

2)使用Cookie,但不推荐,这个有时候会失效。

3)改造$tools->GetOpenid()

2,改造获取OpenId函数

example文件夹下的WxPay.JsApiPay.php文件,找到方法GetOpenid()

public function GetOpenid()

{

//通过code获得openid

//code在微信服务处理完成之后重定向时带回来的

if (!isset($_GET['code']))

{

//触发微信返回code码

$baseUrl = urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].$_SERVER['QUERY_STRING']);

$url = $this->__CreateOauthUrlForCode($baseUrl);

Header("Location: $url"); // 重定向

exit();

}

else

{

//获取code码,以获取openid

$code = $_GET['code'];

$openid = $this->getOpenidFromMp($code);

return $openid; // 返回OpenId

}

}

$baseUrl是要进行页面重定向的链接,默认是我们当前发起支付的页面,我们也可以设置为其他链接,需要注意的是这个链接是需要被urlencode编码的,而在__CreateOauthUrlForCode函数里面就加上了其他的信息,例如之前一直有说到的AppId,那么我们修改的话,只需要修改$baseUrl就行了。

假设现在我需要传入用户的名称:userName,和用户的性别:userSex

$userName = $_GET["userName"];

$userSex = $_GET["userSex"];

$tools = new JsApiPay();

$openId = $tools->GetOpenid($userName,$userSex); // 改造前是不能传参数进去的

对应的改造如下

public function GetOpenid($userName,$userSex)

{

//通过code获得openid

//code在微信服务处理完成之后重定向时带回来的

if (!isset($_GET['code']))

{

// 假设现在我的支付代码文件的链接是:

// http://www.hubwiz.com/WeChatPay/example/jsapi.php,那么下面就是

$baseUrl = urlencode("http://www.hubwiz.com/WeChatPay/example/jsapi.php?userName=".$userName."&userSex=".$userSex);

$url = $this->__CreateOauthUrlForCode($baseUrl);

Header("Location: $url"); // 重定向

exit();

}

else

{

//获取code码,以获取openid

$code = $_GET['code'];

$openid = $this->getOpenidFromMp($code);

return $openid;// 返回OpenId

}

}

这样子,我们就能在页面重定向后继续获取我们第一次传过去的数据 userName 和 userSex 了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值