集成PayPal支付(使用BrainTree)

TIPS: 此文章中的环境仅仅是在SandBox 进行了开发调试!

说明

  • 为什么选择PayPal
    在国外,多数支付都是采用PayPal或者信用卡进行支付。 注意 对于使用PayPal,其实也有诸多限制,一定要调查清楚了再去分析是否合适自己的项目
  • 为什么使用BrainTree
    在使用PayPal 的时候,我们计划采用集成SDK的方式进行支付。在PayPal的 APP SDK 项目中,已经不再维护 SDK,推荐使用 Braintree Direct 参见: https://github.com/paypal/PayPal-Android-SDK
  • How it works
    集成PayPal支付(使用BrainTree)

准备工作

配置PayPal

  • 创建Sandbox账号
  1. 登陆后 Dashboard->MyApps&Credentials ;
  2. 选择 Sandbox,然后点击 CreateApp
  3. 填写APP名称,并选择在沙箱中使用的账号
  4. 创建成功后,可以在 MyApps&Credentials 中显示你创建的APP,点击该APP进入项目,可以看到 Sandbox account 、Client ID 、Secret (需要点击show按钮) 集成PayPal支付(使用BrainTree)

warn: 此时,尚未有 webhooks 配置

配置BrainTree

登陆到沙箱环境 集成PayPal支付(使用BrainTree)

  • 配置PayPal
  1. 点击 下拉菜单中的 Processing
  2. 找到 PayPal ,点击后面的 “Options” ,去配置PayPal
  3. 分别填入 PayPalEmail 、PayPal Client Id ,PayPal ClientSecret
  • 启用对信用卡的校验
  1. 找到 Processing -> Fraud Tools 中的 CVV,进入
  2. 如图配置
集成PayPal支付(使用BrainTree)
  • 配置WebHooks
  1. 点击 API -> WebHooks -> create new webhook
  2. 填入:Destination URL (HTTPS only),并选择要通知的事件
  3. 校验WebHooks是否正确(需要先开发webhooks功能)
集成PayPal支付(使用BrainTree)

APP 实现代码

后台JAVA实现代码


//初始化 gateway

BraintreeGateway gateway = new BraintreeGateway(
	isProduct ? Environment.PRODUCTION : Environment.SANDBOX,
	merchant_id,
	public_key,
	private_key
);

//生成token
String token = gateway.clientToken().generate();

//请求交易

TransactionRequest request = new TransactionRequest()
	.amount( 这里放金额 )
	.paymentMethodNonce( 这里放APP提交过来的字符串码 )
	.orderId( 这里可以放订单号 )
	.options()
		.submitForSettlement(true)
		.paypal()
		.done()
	.storeInVaultOnSuccess(true)
	.done();

Result<Transaction> result = gateway.transaction().sale(request);

具体的JAVA代码实现,可以参考官方开发文档: https://developers.braintreepayments.com/guides/paypal/server-side/java

注意事项

  1. SandBox 环境下 WebHooks无效的问题

在测试过程中发现,交易成功后,无法收到回调。经过多次google,有提到该问题已经很久(据说修复了,但是一直不能用) 那么可以使用他们提供的 WebhookTestingGateway 进行测试

WebhookTestingGateway webhookTestingGateway = new WebhookTestingGateway(gateway.getConfiguration() );
Map<String, String> params =webhookTestingGateway.sampleNotification(WebhookNotification.Kind.SUBSCRIPTION_CHARGED_SUCCESSFULLY, merchant_id);

PayPal选择分析

1、PAYPAL企业账号注册(用于收款、提现的账号)

部分国家不可以注册

2、PAYPAL收款的汇率、手续费

支持银联、Visa、MasterCard、American Express、Discover Card用于支付

   手续费:
   当月累积收款$3000以下,4.4%+$0.3
   当月累积收款$3000-10000,3.9%+$0.3
   当月累积收款$10000-100000,3.7%+$0.3
   当月累积收款$100000,3.4%+$0.3

   汇率:
   收款货币使用美元,付款使用人民币,需要付款方把人民币兑换成美元后付款,兑换费率为正常汇率+固定兑换手续费2.5% 

3、PAYPAL提现

   不能提现人民币,只能使用电汇美金形式提现到银行账户(其他PAYPAL不支持的收款币种,都需要已电汇美金形式提现)
   提现必须使用银行账户,需要支持美元
   支持PAYPAL提现的中国银行:工商银行、建设银行、农业银行、中国银行、招商银行、交通银行、中信银行、民生银行、兴业银行、光大银行、华夏银行、浦发银行、邮政银行

   提现手续费:
   中国大陆:3-7个工作日,每次$35
   美国:3-4个工作日,每次$35
   中国香港:3-6个工作日,免费(低于1000HKD时,每笔3.5HKD)

   提现汇率:
   PAYPAL账户币种与提现币种相同,不需要支付汇率+兑换费,只需支付手续费
   PAYPAL账户币种与提现币种不同,需要支付汇率+2.5%兑换费+手续费

4、PAYPAL支持币种

收款币种:
  澳元、加元、瑞士法郎、捷克克朗、丹麦克朗、欧元、英镑、港币、福林、以色列新谢克尔、日元、墨西哥比索、挪威克朗、新西兰元、菲律宾比索、波兰兹罗提、俄罗斯卢布、瑞典克朗、新加坡元、泰铢、新台币、美元
  付款币种:100+

5、企业账户身份认证

声明:本站部分文章或资源,整理于网络或由网友提供,主要用于知识性分享与学习用途。若相关内容侵犯了原著者的合法权益,请联系处理。
插件&API

获取Bing每日壁纸用作首屏大图

2022-12-14 17:45:56

技术资源

linux 如何添加php gd扩展 (阿里云主机linux添加PHP扩展)全网最强教程

2021-6-9 17:16:15

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧