Login with PayPal DEMO

来源:互联网 发布:网络尖兵和星空极速 编辑:程序博客网 时间:2024/06/05 20:24

首先来看的是paypal给我们的建议和一些文档。
Login with PayPal的集成资料
https://developer.paypal.com/docs/integration/direct/identity/log-in-with-paypal/

首先,您需要申请一个REST app:
https://developer.paypal.com/developer/applications/create ,选中“Log In with PayPal”选项, 在高级选项中,如果想获取买家的电话,住址,邮箱等信息,需要在申请Application的内容里面选上这些信息。
另外无需再次登入的产品名称叫Seamless checkout,也是需要在application里面勾上该产品才能使用。
请参考下面链接的Provide information for a Log In with PayPal app章节:
https://developer.paypal.com/webapps/developer/docs/integration/admin/manage-apps/

Seamless checkout 集成介绍:
https://developer.paypal.com/docs/integration/direct/identity/seamless-checkout/

您可以参考我们的demo (log in):
https://demo.paypal.com/us/demo/navigation?device=desktop&page=merchantHome

**

下边是我的一个用PHP写的小DEMO,注意需要替换成自己的key和url

**

这里是生成的代码用于登录<span id="myContainer"></span><script src="https://www.paypalobjects.com/js/external/api.js"></script><script>    paypal.use( ["login"], function(login) {        login.render ({            "appid": "Aap2NcHeFzlR8s-e_Mhqiw2IK2a1wKd5BxC9tmtbSqPjUpfWeqPlRmAaWKW3chtG_RsmkT6D_v7DcVFE",            "scopes": "profile email address phone https://uri.paypal.com/services/paypalattributes",            "containerid": "myContainer",            "locale": "zh-cn",            "returnurl": "http://zhaoyingjie.cn/oauth2-php-ppaccess/complete.php"        });    });</script>
这里是主要代码区域,用于URL返回<?php//初始化获取用户的PayPal令牌$client_id     = "Aap2NcHeFzlR8s-e_Mhqiw2IK2a1wKd5BxC9tmtbSqPjUpfWeqPlRmAaWKW3chtG_RsmkT6D_v7DcVFE";$client_secret = "EEDK8fUF7xzz8GVPqFUbHgvoB3QouAZNxWiy710-ddVcOBn9maSQDxyfPNZ4Pz5zChC1fCZ2SZhroixv";$code          = $_REQUEST['code'];$post_url      = "https://api.paypal.com/v1/identity/openidconnect/tokenservice";$post_date     = array(    'client_id'     => $client_id,    'client_secret' => $client_secret,    'grant_type'    => 'authorization_code',    'code'          => $code);$response      = json_decode( curlPost($post_url,$post_date) );$token         = $response->access_token;//获取用户的PayPal用户信息数据$post_url      = "https://api.paypal.com/v1/identity/openidconnect/userinfo/";$post_date     = array(    'schema'        => 'openid',    'access_token'  => $token);$response      = json_decode( curlPost($post_url,$post_date) );echo "<pre>";var_dump($response);function curlPost($url,$data) {    $ch = curl_init($url);    curl_setopt($ch, CURLOPT_POST, true);    curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($data));    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);//payal说只有在沙盒模式才用加,可为何正式也用加这个参数    $reponse = curl_exec($ch);    if(curl_errno($ch)>0){        //return false;        var_dump( curl_errno($ch));    }    curl_close($ch);    return $reponse;}/*一下为paypal login 获取到的用户信息样本object(stdClass)#2 (16) {["family_name"]=>  string(4) "zhao"["verified"]=>  string(4) "true"["name"]=>  string(12) "zhao yingjie"["account_type"]=>  string(8) "BUSINESS"["given_name"]=>  string(7) "yingjie"["user_id"]=>  string(93) "https://www.paypal.com/webapps/auth/identity/user/2pU9NqpEdpnkXUHWZRBdP2tPJ9s3UvmWwSWYUI1y3Io"["address"]=>  object(stdClass)#3 (5) {  ["street_address"]=>    string(2) "xx"["locality"]=>    string(2) "xx"["region"]=>    string(8) "HongKong"["postal_code"]=>    string(6) "110000"["country"]=>    string(2) "C2"  }  ["verified_account"]=>  string(5) "false"["language"]=>  string(5) "zh_XC"["zoneinfo"]=>  string(13) "Asia/Shanghai"["locale"]=>  string(5) "zh_XC"["phone_number"]=>  string(11) "123123"["account_creation_date"]=>  string(10) "2016-12-18"["email"]=>  string(20) "123@123.com"["age_range"]=>  string(5) "26-30"["birthday"]=>  string(10) "1929-10-08"}一下为测试用的代码可删除$ch = curl_init( "https://api.paypal.com/v1/identity/openidconnect/tokenservice" );curl_setopt_array( $ch,    array(        CURLOPT_POST           => 1,        CURLOPT_POSTFIELDS     => 'client_id='.$client_id.'&client_secret='.$client_secret.'&grant_type=authorization_code&code=' . $code,        CURLOPT_RETURNTRANSFER => 1,        CURLOPT_SSL_VERIFYPEER => FALSE    ));$response = json_decode(curl_exec( $ch ));echo "<pre>";var_dump($response);echo "</pre>";*/?>

总结,paypal login的方法其实和QQ等的是一样的,有问题可以联系paypal顾问进行咨询。

0 0
原创粉丝点击