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/2)1代表公司賬戶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; } }