Android集成PayPal
一,什么是PayPal?
PayPal是eBay旗下的一家公司,致力于让个人或企业通过电子邮件,安全、简单、便捷地实现在线付款和收款。PayPal账户是PayPal公司推出的最安全的网络电子账户,使用它可有效降低网络欺诈的发生。PayPal账户所集成的高级管理功能,使您能轻松掌控每一笔交易详情。目前,在跨国交易中超过90%的卖家和超过85%的买家认可并正在使用PayPal电子支付业务。
PayPal的优势:全球用户广、品牌效应强、资金周转快、安全保障高、使用成本低。
使用PayPal有什么好处?
1.轻松拓展海外市场,获得更多用户支持。
2.降低相关成本,提高利润率,加速资金周转。
3.利用品牌效应,提高买家忠诚度,彻底消除购物障碍 。
二,怎么把PayPal集成到Android端APP上?
1,使用公司给你的开发帐号登录paypal的开发者网站https://developer.paypal.com。
2,在https://developer.paypal.com/developer/applications/页面中点击“Create APP”按钮,在弹出的界面填写app name(需要集成到你自己的APP的name)就好了,就会生产Sandbox(测试环境)以及Live(正式环境)对应下的Client ID和Secret。
3,在https://developer.paypal.com/developer/accounts/页面中点击“Create Account”按钮创建一个沙盒测试账号。在弹出的创建页面可以随便填,只要你记住帐号密码就成。忘了就修改,不然就删掉重建。
4,准备工作已经完成,开始代码环节。
(1)下载SDK加入到项目中,或者直接添加依赖。
(2)在AndroidManifest.xml中申明用到SDK中的Activity、service及相关权限。
(3)由于PayPal sdk 现在已经升级到了默认最低是minSDKVersion 16 ,所以你得可以把你的minSDKVersion改到16或者更大。
(4)在你需要调起支付的页面配置支付环境(或者在基类配置相应的支付环境)。
(5)在类的onCreate方法里面调起支付服务。
(6)创建支付实体,在需要调起支付的地方调起支付。
(7)在类的onActivityResult 里进行回调结果的处理。
(8)在类的onDestroy 注销服务。
三,集成PayPal的实例操作和代码
1,使用公司给我的开发账号登录paypal的开发者网站https://developer.paypal.com。
2,创建应用程序。
点击上图中的创建按钮以后,就会弹出如下图所示的界面,需要填写APP Name。
点击上图中的创建按钮以后,就会弹出如下图所示的界面,就会产生Sandbox(测试环境)以及Live(正式环境)下对应的Client ID和Secret。
3,创建支付测试账号。
点击上图中的创建账号按钮以后,就会弹出如下图所示的界面,主要是记住填写的账号和密码,其他信息可以随便填写。
创建以后就可以在下面看到注册的账号。
4,创建Name为SmartHome的项目。
(1),在app/build.gradle里面添加依赖。
compile 'com.paypal.sdk:paypal-android-sdk:2.15.3'
(2),在AndroidManifest.xml中申明用到SDK中的Activity、service及相关权限。
<!-- for card.io card scanning -->
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<!-- for most things, including card.io & paypal -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/><service android:name="com.paypal.android.sdk.payments.PayPalService" android:exported="false" />
<activity android:name="com.paypal.android.sdk.payments.PaymentActivity" />
<activity android:name="com.paypal.android.sdk.payments.LoginActivity" />
<activity android:name="com.paypal.android.sdk.payments.PaymentMethodActivity" />
<activity android:name="com.paypal.android.sdk.payments.PaymentConfirmActivity" />
<activity android:name="io.card.payment.CardIOActivity" android:configChanges="keyboardHidden|orientation" />
<activity android:name="io.card.payment.DataEntryActivity" />
(3),并确保minSDKVersion为16或者更大。否则AS会报错误。
Error:Execution failed for task ':app:processDebugManifest'.
(4),在你需要调起支付的页面配置支付环境(或者在基类配置相应的支付环境)。
//配置何种支付环境,一般沙盒,正式
private static final String CONFIG_ENVIRONMENT = PayPalConfiguration.ENVIRONMENT_SANDBOX;
private static final String DEFAULT_CURRENCY = "USD";
//你所注册的APP Id
private static final String CONFIG_CLIENT_ID = "你所注册的CLient Id";
private static final int REQUEST_CODE_PAYMENT = 1;
private static final int REQUEST_CODE_FUTURE_PAYMENT = 2;
private static final int REQUEST_CODE_PROFILE_SHARING = 3;
private static PayPalConfiguration paypalConfig = new PayPalConfiguration().environment(CONFIG_ENVIRONMENT)
.clientId(CONFIG_CLIENT_ID);
//以下配置是授权支付的时候用到的
//.merchantName("Example Merchant")
// .merchantPrivacyPolicyUri(Uri.parse("https://www.example.com/privacy"))
//.merchantUserAgreementUri(Uri.parse("https://www.example.com/legal"));
(5),在类的onCreate方法里面调起支付服务。
Intent intent = new Intent(this, PayPalService.class);
intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, paypalConfig);
startService(intent);
(6),创建支付实体,在需要调起支付的地方调起支付。
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {PayPalPayment payment = new PayPalPayment(new BigDecimal("1.75"), "USD", "hipster jeans",PayPalPayment.PAYMENT_INTENT_SALE);Intent intent = new Intent(MainActivity.this, PaymentActivity.class);intent.putExtra(PaymentActivity.EXTRA_PAYMENT, payment);startActivityForResult(intent, REQUEST_CODE_PAYMENT);}});
(7),在类的onActivityResult 里进行回调结果的处理。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (data == null) {return;}PaymentConfirmation confirm = data.getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION);String paymentId;try {paymentId = confirm.toJSONObject().getJSONObject("response").getString("id");String payment_client = confirm.getPayment().toJSONObject().toString();Log.e(TAG, "paymentId: " + paymentId + ", payment_json: "+ payment_client);// TODO :把paymentId和payment_json传递给自己的服务器以确认你的款项是否收到或者收全// TODO :得到服务器返回的结果,你就可以跳转成功页面或者做相应的处理了} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}
}
(8),在类的onDestroy 注销服务。
@Override
public void onDestroy() {stopService(new Intent(this, PayPalService.class));super.onDestroy();
}
四,PayPal的充值和提现
附上PayPal充值和提现的教程。http://waihuizhan.com/paypal-funds-and-withdrawals/
Android集成PayPal相关推荐
- Android集成Paypal支付Braintree
最新发现Paypal的官方SDK已经不再维护了,所以需要把项目的支付做一下升级. 文档链接:点击这里 根据文档来看Paypal支付的集成相比以前简单了许多,下面我们讲一下集成步骤: 1:在 build ...
- Android下集成Paypal支付
近期项目需要研究paypal支付,官网上的指导写的过于复杂,可能是老外的思维和中国人不一样吧.难得是发现下面这篇文章: http://www.androidhive.info/2015/02/andr ...
- 详细教程: android项目集成PayPal 支付
2017年7月5日 更新了, 总体该说的都说了, 后面再看看还有啥细节补充吧. 项目是跨境电商,国外的支付需要集成paypal支付,在网上搜了好久,教程都是断断续续,对开发者来说不太友好! 好在现在 ...
- 使用IntelliJ IDEA 13搭建Android集成开发环境(图文教程)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- 使用Android Studio搭建Android集成开发环境
一.Android Studio简单介绍 2013年GoogleI/O大会首次发布了Android Studio IDE(Android平台集成开发环境).它基于Intellij IDEA开发环境,旨 ...
- 网站集成PayPal如何设置
网站集成PayPal如何设置 登录 PAYPAL 网站 0. 注册 1. 登录. 2. 点击 Profile. 3. 点击 Add or Edit Email. 4. 记下 primary 邮件地址, ...
- 使用Android Studio搭建Android集成开发环境(图文教程)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- PHP中集成PayPal标准支付
前两天一个客户需要在网站上集成PayPal支付功能,查了一下资料,简单记录如下: PayPal支付功能其实一直在更新文档和接口,这里说的是一个简单的支付功能大概流程如下 1,在网站的结账页面,设置一个 ...
- Android集成三方浏览器之Crosswalk
上一篇讲解了腾讯 X5 内核的集成,这一篇是讲解 Crosswalk 的集成 Crosswalk 也是采用了Chromenium 内核,是一款开源的 web 引擎,开发者可以直接把 Crosswalk ...
最新文章
- uart接口_UART串行总线舵机转接板规格、接线说明 amp; 驱动安装
- 3.QT中的debug相关的函数,以及文件锁的使用
- 虚拟机当作设置服务器,虚拟机当作设置服务器
- GitHub 6600星,面向中国人:微软AI教育与学习共建社区2.0登场!
- 喜茶部分产品降价,企查查显示其最新估值达600亿元
- java socket 简书_Java之Socket编程入门篇
- 【机器学习系列】GMM第一讲:两个角度认识高斯混合模型
- 计算机怎么把硬盘分成几个,怎么把硬盘分成整数分区_硬盘分区整数对照表
- python实现SG滤波
- Win10使用说明 - 任务栏设置、触摸板手势和使用偏好
- win10系统在文件夹中图片不显示内容问题
- 小米蓝牙广播数据解析(MiBeacon)
- 深度学习、机器学习领域毕业设计选题方法及建议
- IT运维外包甩不掉的包袱
- HTML5 data-* 自定义属性及其注意点
- 整理各种模板(准备随时弃坑)
- 假设有一个字类型的数值arry1,试编写程序统计arry1数值及其后若干数值,在字单元中存储时每个数据中含“1”数据位的个数,并将统计结果保存在res1数组中。数据段的代码定义如下: data seg
- 管理类联考-英语: 前导( 一 )
- 为什么 ERP 系统的用户体验不好?
- VC++获取不同Windows版本的方法
热门文章
- 长沙医学院英语四级计算机,长沙医学院2018年6月英语四六级考试报名工作的通知...
- 数据从业者的一次“典型”面试
- 使用安卓实现一个二维码扫描功能(基于Android Studio)
- iOS app在AppStore的下载地址
- 【实验】:OSPF基本配置(OSPF路由协议、影响DR/BDR选举、配置接口开销值、被动接口、认证功能)
- CUDA atomic原子操作
- 《工厂订单出入库信息管理系统》模块1 -- 订单管理
- 音视频最新技术有哪些
- CSS实现图片高斯模糊效果
- 百万年薪的人才泡沫与人工智能的虚假繁荣