Home > Backend Development > PHP Tutorial > PHP implements paypal authorized login_PHP tutorial

PHP implements paypal authorized login_PHP tutorial

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-07-13 09:52:35
Original
1422 people have browsed it

php implements paypal authorized login

This article shares with you the code for paypal authorized login implemented in php. It is very simple and practical. Friends in need can refer to it.

php implements paypal authorized login

 ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

/**

* @project paypal login

* @author jiangjianhe

* @date 2015-04-03

*/

class paypallogin

{

//Sandbox token link

private $_sanbox_oauth2_auth_uri = 'https://www.sandbox.paypal.com/webapps/auth/protocol/openidconnect/v1/authorize';

private $_live_oauth2_auth_uri = 'https://www.paypal.com/webapps/auth/protocol/openidconnect/v1/authorize';

private $_acquire_user_profile_sandbox_url = 'https://www.sandbox.paypal.com/webapps/auth/protocol/openidconnect/v1/userinfo?schema=openid&access_token=';

private $_acquire_user_profile_live_url = 'https://www.paypal.com/webapps/auth/protocol/openidconnect/v1/userinfo?schema=openid&access_token=';

//Sandbox token link

private $_token_service_sandbox_url = 'https://www.sandbox.paypal.com/webapps/auth/protocol/openidconnect/v1/tokenservice';

private $_token_service_live_url = 'https://www.paypal.com/webapps/auth/protocol/openidconnect/v1/tokenservice';

private $_sanbox_flag = true;

private $_client_id = null;

private $_client_secret = null;

private $_redirect_uri = null;

private $_state = '';

private $_scope = 'openid email phone profile address https://uri.paypal.com/services/paypalattributes'; //The scope parameter determines the access permissions of the access token. Detailed explanation of each parameter url;:https://www .paypal-biz.com/product/login-with-paypal/index.html#configureButton

public $token = null;

public $protocol = "http";

/**

* @name constructor

* @param $flag Whether to use sandbox environment

*/

public function __construct($redirect_uri, $client_id,$client_secret,$scope,$state,$flag = true)

{

$this->_sanbox_flag = $flag;

$this->_redirect_uri = $redirect_uri;

$this->_client_id = $client_id;

$this->_client_secret = $client_secret;

$this->_scope = $scope;

$this->_state = $state;

}

/**

* 创建paypal request url

* @return string

*/

public function create_request_url()

{

$oauth2_auth_uri = $this->_sanbox_flag ? $this->_sanbox_oauth2_auth_uri :$this->_live_oauth2_auth_uri;

$url = $oauth2_auth_uri.'?'.

http_build_query(

array(

'client_id' => $this->_client_id, //The unique client identifier obtained through the application registration process. Required.

'response_type' =>'code', //Indicates that the authorization code is sent back to the application return URL. To make the access token invisible to the user agent, it is recommended to use the value code. If you wish to receive both the authorization code and id_token in the response, pass code id_token. Another possible response_type value is token - mostly used by public clients like JavaScript and mobile clients.

'scope' => $this->_scope,//;implode(',', $this->scope),

'redirect_uri' => urlencode($this->_redirect_uri), //The return URL of the application. The structure, hostname, and port must match the return URL you set when registering your application.

'nonce' => time().rand(), //Opaque random identifier to reduce the risk of replay attacks. The simple function is: (timestamp Base64 encoding (random[16])).

'state' => $this->_state, // CSRF verification code

)

);

return $url;

}

/**

* get PayPal access token

* @param string $code ?

* @return string access token

*/

public function acquire_access_token($code) {

$accessToken = null;

try {

$postvals = sprintf("client_id=%s&client_secret=%s&grant_type=authorization_code&code=%s",$this->_client_id,$this->_client_secret,$code);

if($this->_sanbox_flag)

$ch = curl_init($this->_token_service_sandbox_url);

else

$ch = curl_init($this->_token_service_live_url);

$options = array(

CURLOPT_POST => 1,

CURLOPT_VERBOSE => 1,

CURLOPT_POSTFIELDS => $postvals,

CURLOPT_RETURNTRANSFER => 1,

CURLOPT_SSL_VERIFYPEER => FALSE,

//CURLOPT_SSLVERSION => 2

);

curl_setopt_array($ch, $options);

$response = curl_exec($ch);

$error = curl_error($ch);

curl_close( $ch );

if (!$response ) {

throw new Exception( "Error retrieving access token: " . curl_error($ch));

}

$jsonResponse = json_decode($response );

if ( isset( $jsonResponse->access_token) ) {

$accessToken = $jsonResponse->access_token;

}

 

} catch( Exception $e) {

throw new Exception($e->getMessage(), 1);

}

 

return $accessToken;

}

 

/**

* get the PayPal user profile, decoded

* @param string $accessToken

* @return object

*/

public function acquire_paypal_user_profile($accessToken ) {

try {

if($this->_sanbox_flag)

$url = $this->_acquire_user_profile_sandbox_url . $accessToken;

else

$url = $this->_acquire_user_profile_live_url . $accessToken;

 

$ch = curl_init( $url );

$options = array(

CURLOPT_RETURNTRANSFER => 1,

CURLOPT_SSL_VERIFYPEER => FALSE,

//CURLOPT_SSLVERSION => 2

);

curl_setopt_array($ch, $options);

 

$response = curl_exec($ch);

$error = curl_error( $ch);

curl_close( $ch );

 

if (!$response )

{

return false;

}

return json_decode($response);

} catch( Exception $e ) {

return false;

}

}

}

?>

  以上所述就是本文的全部内容了,希望大家能够喜欢。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1007644.htmlTechArticlephp实现paypal 授权登录 本文给大家分享的是php实现的paypal授权登录的代码,十分的简单实用,有需要的小伙伴可以参考下。 php实现paypal 授权...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template