JsApiPay::GetOpenid PHP Method

GetOpenid() public method

通过跳转获取用户的openid,跳转流程如下: 1、设置自己需要调回的url及其其他参数,跳转到微信服务器https://open.weixin.qq.com/connect/oauth2/authorize 2、微信服务处理完成之后会跳转回用户redirect_uri地址,此时会带上一些参数,如:code
public GetOpenid ( ) : 用户的openid
return 用户的openid
    public function GetOpenid()
    {
        //通过code获得openid
        if (!isset($_GET['code'])) {
            //触发微信返回code码
            $baseUrl = urlencode(Url::current([], true));
            $url = $this->__CreateOauthUrlForCode($baseUrl);
            Header("Location: {$url}");
            exit;
        } else {
            //获取code码,以获取openid
            $code = $_GET['code'];
            $openid = $this->getOpenidFromMp($code);
            return $openid;
        }
    }

Usage Example

示例#1
0
 static function build_js_params()
 {
     //①、获取用户openid
     $tools = new JsApiPay();
     $openId = $tools->GetOpenid();
     pt_log($openId);
     //②、统一下单
     $input = new WxPayUnifiedOrder();
     $input->SetBody("test");
     $input->SetAttach("test");
     $input->SetOut_trade_no(WxPayConfig::MCHID . date("YmdHis"));
     $input->SetTotal_fee("1");
     $input->SetTime_start(date("YmdHis"));
     $input->SetTime_expire(date("YmdHis", time() + 600));
     $input->SetGoods_tag("test");
     $input->SetNotify_url("http://demo.ptphp.com/wxpay/example/notify_test");
     $input->SetTrade_type("JSAPI");
     $input->SetOpenid($openId);
     $order = WxPayApi::unifiedOrder($input);
     pt_log($order);
     $jsApiParameters = $tools->GetJsApiParameters($order);
     pt_log($jsApiParameters);
     //获取共享收货地址js函数参数
     return $jsApiParameters;
 }
All Usage Examples Of JsApiPay::GetOpenid