thinkphp3.2.3 支付寶授權登錄php

1,首先拿到應該獲取的權限,賬戶信息裏面能拿到pid


私鑰與公鑰,以及支付寶公鑰



3,我使用的是thinkphp導入支付寶sdk


tp裏面verdor可以直接調用支付寶

vendor('Alipay.AopSdk');
$aop = new \AopClient ();


4,封裝alipayapi

個人二次次封裝alipay的sdk調用



附上代碼(加上自己的配置文件可以直接使用,具體根據自己業務需求做拓展):

<?php

namespace Common\Lib\AlipayApi;

/**
 * 支付寶sdk封裝
 *
 * Class ArrayFormat
 * @package Common\Lib\AlipayApi;
 */
class AlipayApi
{
    public  function alipayUserInfo($auth_code)
    {

        vendor('Alipay.AopSdk');
        $aop = new \AopClient ();


        if(empty($auth_code)){
            E('auth_code不能爲空!');
        }

//APPID
        $appid = C('ALIPAY_CONFIG.appid');

//私鑰  文件名(rsa_private_key.pem        $rsaPrivateKey = C('ALIPAY_CONFIG.rsaPrivateKey');

//公鑰  文件名 (rsa_public_key.pem        $alipayrsaPublicKey = C('ALIPAY_CONFIG.alipayrsaPublicKey');

//初始化

        $aop->gatewayUrl = C('ALIPAY_CONFIG.gatewayUrl');
        $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($auth_code);//這裏傳入 code

        $result = $aop->execute($request);
        $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
        $access_token = $result->$responseNode->access_token;


//獲取用戶信息


        $request_a = new \AlipayUserUserinfoShareRequest();
        $result_a = $aop->execute ($request_a,$access_token); //這裏傳入獲取的access_token
        $responseNode_a = str_replace(".", "_", $request_a->getApiMethodName()) . "_response";

        $alipayUser =array();
        $alipayUser['alipay_user_id'] = $result_a->$responseNode_a->user_id;   //用戶唯一id
        $alipayUser['alipay_province'] = $result_a->$responseNode_a->province;    //省份
        $alipayUser['alipay_city'] = $result_a->$responseNode_a->city;    //城市
        $alipayUser['alipay_user_type'] = $result_a->$responseNode_a->user_type;    // 用戶類型(1/21代表公司賬戶2代表個人賬戶
        $alipayUser['alipay_user_status'] = $result_a->$responseNode_a->user_status;    //用戶狀態(Q/T/B/W)。Q代表快速註冊用戶T代表已認證用戶B代表被凍結賬戶W代表已註冊,未激活的賬戶
        $alipayUser['alipay_is_certified'] = $result_a->$responseNode_a->is_certified;    //是否通過實名認證。T是通過 F是沒有實名認證。

        return $alipayUser;

    }

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章