アリペイユーザー情報の取得

2337 ワード

私達のプロジェクトはコードをスキャンして支払って、HTML 5はバックグラウンドと対話して、先にユーザーの情報を取得して、情報を通じていくつかの支払いの操作を行います
まず、ユーザー情報の取得
$appid=config('alipay_id');
            $redirect_uri = urlencode ('      ');
            $url ="https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id={$appid}&scope=auth_base&redirect_uri={$redirect_uri}";
            header("Location:".$url);//        

//app_id             
//scope        auth_base     (             )auth_userinfo(        ) 
//redirect_uri         

支付宝取得業者情報ドキュメント住所:https://docs.open.alipay.com/53/104114
アリペイコールバックアドレス開発者の構成には、自分がアクセスできるサーバにアクセスできるようにする権限付きコールバックアドレスが設定されています.
/**
     *           
     * @return [type] [description]
     */
public function backAlipayUrl()
    {
        //            
        $code = $_REQUEST['auth_code'];
        //APPID
        $appid = config('alipay_id');
        //       (rsa_private_key.pem)
        $rsaPrivateKey = config('private_key');
         
        //        (rsa_public_key.pem)
        $alipayrsaPublicKey = config('public_key');
        //config[public_key]
         
        //   
        $aop = new AopClient ();
        $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
        $aop->appId = $appid;
        $aop->rsaPrivateKey = $rsaPrivateKey;
        $aop->alipayrsaPublicKey = $alipayrsaPublicKey;
        $aop->apiVersion = '1.0';
        $aop->signType = 'RSA2';
        $aop->postCharset='UTF-8';
        $aop->format='json';
        //  access_token
        $request = new AlipaySystemOauthTokenRequest ();
        $request->setGrantType("authorization_code");
        $request->setCode($code);//     code
        $result = $aop->execute($request);
        $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
        // $access_token = $result->$responseNode->access_token;
        
        $result = json_decode(json_encode($result),true);
        $user_id = $result[$responseNode]['user_id'];//     userID
        
        Cache::set('alipayUserid',$user_id);
        return $this->redirect('Payback/pay');
    }