Android集成PayPal
来源:互联网 发布:nginx是什么服务器 编辑:程序博客网 时间:2024/05/17 00:10
一,什么是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 Idprivate 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 里进行回调结果的处理。
@Overrideprotected 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 block e.printStackTrace(); }}
(8),在类的onDestroy 注销服务。
@Overridepublic void onDestroy() { stopService(new Intent(this, PayPalService.class)); super.onDestroy();}
四,PayPal的充值和提现
附上PayPal充值和提现的教程。http://waihuizhan.com/paypal-funds-and-withdrawals/
- Android集成PayPal支付
- Android集成PayPal
- Android集成Paypal
- Android 如何集成Paypal支付
- Android集成PayPal遇到NoClassDefFoundError: com.paypal.android.sdk.payments.PayPalConfiguration
- java集成paypal支付,含Android,服务端代码
- Paypal国际版网站集成
- PayPal集成帮助
- PayPal集成介绍
- PayPal贝宝集成
- paypal支付集成
- 关于paypal支付集成
- paypal php 集成工具包
- 集成Paypal相关问题
- PayPal接口集成之:PHP集成PayPal标准支付接口
- 网站集成PayPal如何设置
- 网站集成PayPal如何设置
- Android paypal支付 集成 Manifest merger failed with multiple errors, see logs
- 震惊,我居然开启了博客
- 动手开发一个简易的 PHP for Git Server 第三章
- 红客seo浅谈:我的seo十年之路
- 数据挖掘之人工神经网络
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区) F Islands
- Android集成PayPal
- EOJ 3124 单词表(排序)
- WebService路径在部署阶段改变问题
- testBatchAndFlush(android.hardware.cts.SensorTest): WaitForFlush | sensor='PROXIMITY'
- 相机标定的参数解读
- 动手开发一个简易的 PHP for Git Server 第四章
- HTML5--表单
- kubernetes DNS搭建
- 【leetcode】第70题 Climbing Stairs 题目+解析+JAVA代码