基于PHP的微信支付教程 互动版

获取 OpenId

还记得获取OpenId的时候,页面会怎样吗?没错,它会重定向的,为了不丢失我们传过去的数据,最好的方法就是改写。

lib文件夹下的 WxPay.Api.php 函数
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
    }
}