Java接入PayPal教程,Spring boot Demo源码,企业账号注册,支付,回调,退款全流程,最新PayPal SDK

一、环境准备

1. 注册

2. 创建沙箱测试账号

3. Client ID及Secret

二、核心代码

1. 官方github sdk

2. pom引用

3. 代码讲解

4. 支付代码demo流程

5. 退款

6. 支付回调


一、环境准备

1. 注册

注册:创建PayPal账户 - PayPal中国https://www.paypal.com/c2/webapps/mpp/account-selection1.1 选择企业账户

1.2 开发者中心:

PayPal developerhttps://developer.paypal.com/

 1.3 进入控制面板:

2. 创建沙箱测试账号

2.1 Business为收款账号,Personal为付款账号,平台默认创建好了两个账号

 2.2 在沙箱模式创建一个app,平台默认创建好了一个

 2.3 填写信息

类型:

Merchant-仅为自己收款

Platform-作为平台收款,可分账给卖家

2.4 绑定某个沙箱账号

3. Client ID及Secret

进入app详细页面,查看Client ID及Secret(后续需填写到代码中) 

二、核心代码

1. 官方github sdk

  • Rest-api-sdk,已被deprecated,但可继续用,只是官方不会继续添加新功能

This SDK is deprecated. You can continue to use it, but no new features or support requests will be accepted. For alternatives, please visit the current SDK homepage on the PayPal Developer Portal

https://github.com/paypal/PayPal-Java-SDKhttps://github.com/paypal/PayPal-Java-SDK

  • Checkout SDK,推荐使用:

https://github.com/paypal/Checkout-Java-SDKhttps://github.com/paypal/Checkout-Java-SDK

此文章仅介绍Checkout SDK

2. pom引用

在自己的spring boot项目中添加sdk依赖Maven Central Repository Searchhttps://search.maven.org/artifact/com.paypal.sdk/checkout-sdk/1.0.5/jar

		<dependency>
            <groupId>com.paypal.sdk</groupId>
            <artifactId>checkout-sdk</artifactId>
            <version>1.0.5</version>
        </dependency>

2.1 github中checkout-sdk-sample 的代码复制到自己的项目中

 

3. 代码讲解

3.1 填写Client ID及Secret

在PayPalClient.java中,替换创建好的app详细页面的Client ID及Secret

3.2 两个模式:Authorize、Capture

查看Authorize模式的RunAll.java可看到多了一步授权步骤,将orderId转成了authId

3.3 创建订单示例代码: 

已知参数(其他未标注参数未知具体作用,如知晓请告知):

金额规则:

总金额=商品总价+运费+handling+税总金额-运费折扣 

商品总价=各(商品单价x数量)的累加

税总金额=各(商品税x数量)的累加

如不满足会报错

商品类型category枚举:Ordershttps://developer.paypal.com/docs/api/orders/v2/

 3.4 参数可简化,如我方是售卖线上课程的业务,简化后: 

4. 支付代码demo流程

4.1 直接执行RunAll.java 

4.2 创建完顶底后,复制approve的链接到浏览器

 4.3 用sandbox的personal的账号登录,并支付

 4.4 支付成功后,会跳到returnUrl填的地址

5. 退款

可设置退款金额,金额<=总金额 

6. 支付回调

6.1 接口配置:

 

 6.2 回调信息在JSONObject参数中

    @PostMapping("/ipn")
    public void ipn(@RequestBody JSONObject requestParams) {

    }

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值