Login with PayPal DEMO
首先来看的是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顾问进行咨询。
Login with PayPal DEMO相关推荐
- (旧)springboot 快速实现登录、注册功能(附Demo源码)
1.直接跑通Demo,修改配置文件.导入数据库sql文件即可. 2.跟着一步一步实现. 当然你也可以先跑通Demo,在尝试自己跟着来一遍 1.跑通Demo 需要源码和Demo 跳转新项目 跳转新项目 ...
- PayPal开发文档整理(1)- 开发者首页
原文地址: https://developer.paypal.com/home/ 目录 1.介绍 2. Get Start 3. API Executor 4. PayPal Demo 5.PayPa ...
- Struts2实现登陆功能Demo
最近在学习SSH框架,通过用struts实现一个简单的登陆功能,来学习struts相关知识,着重了解了struts的配置. 1.在Eclipse下创建StrutsDemo项目,并将struts2所必须 ...
- Struts2的动态Action实现
在Struts2中动态方法调用有三种方式,动态方法调用就是为了解决一个Action对应多个请求的处理,以免Action太多. 一.指定method属性 在struts.xml中指定action的met ...
- 爱与恨的抉择:ASP.NET 5+EntityFramework 7
EF7 的纠缠 ASP.NET 5 的无助 忘不了你的好 一开始列出的这个博文大纲,让我想到了很久之前的一篇博文:恋爱虽易,相处不易:当EntityFramework爱上AutoMapper,只不过这 ...
- 如何得到别人的上网帐号和密码
如何得到别人的上网帐号和密码,我在这里介绍几种弱智方法. 方案一:利用特洛伊***得到帐号.必备工具:NTESPY.PWLVIEW. 优点:只要对方运行了程序就有80%的成功率,而且不需要任何网络** ...
- 在asp.net core2.1中添加中间件以扩展Swashbuckle.AspNetCore3.0支持简单的文档访问权限控制...
Swashbuckle.AspNetCore3.0 介绍 一个使用 ASP.NET Core 构建的 API 的 Swagger 工具.直接从您的路由,控制器和模型生成漂亮的 API 文档,包括用于探 ...
- 【实践驱动开发3-003】TI WL1835MODCOM8 在android的移植 - 软件获取2
TI的产品线太多了,所以当你要选定一部分资源的时候,往往会陷入浩瀚的海洋的感觉,一个链接接着一个链接: 1 软件下载链接指向:http://processors.wiki.ti.com/index.p ...
- 开源项目之kisso
kisso开源项目:https://gitee.com/baomidou/kisso 一.简介 kisso = cookie sso 基于 Cookie 的 SSO 中间件,它是一把快速开发 ja ...
最新文章
- 智源研究院发布“知识疫图-全球新冠疫情智能驾驶舱”,一键预测、跟踪和决策辅助...
- SOJ 8064 Whack the Groundhog
- 阻塞队列实现日志接口开发
- excel最常用的八个函数_Excel最常用的几个函数,我都帮你整理好了!
- 核心员工要离职,怎么办?
- 用UDEV服务解决RAC ASM存储设备名
- opencv读取图片、视频、摄像头
- Python在cmd中配置虚拟环境ERROR: Command errored out with exit status 1:
- 《操作系统》OS学习(一):OS相关
- windows网络版象棋的实现
- Android PackageManagerService分析三:卸载APK
- VIM查看空格,换行,TAB键
- 仿抖音上下滑动播放视频
- 全国各地车牌号码查询表
- 科目3|软考高项论文写作技巧
- 去除马赛克,有办法了 附运行教程
- 超好的 MARKINGCODE查询网 电子元件丝印
- vRealize Automation 8.0+安装配置
- Superset部署+连接MySQL8+省份地图可视化
- 着力抓好服务中心建设,实现网格综治一体化管理