博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaEE PayPal退款流程
阅读量:7042 次
发布时间:2019-06-28

本文共 1679 字,大约阅读时间需要 5 分钟。

JavaEE PayPal退款流程

  • 要求:
    1. 交易状态必须结算或结算。
    1. 退款金额不得超过原始交易的剩余未退款金额。
    1. 交易完全退还后不能退款。
    1. 在托管中进行的交易只能全额退还。尝试部分退还托管交易将导致验证错误

退款中的the_transaction_id:即为下单时成功返回的transaction.getId()

1. 请求退款

您可以退款具有结算或结算状态的交易。如果交易尚未开始结算,请Transaction.void()改用。如果您未指定退款金额,则整笔交易金额将退还。

退款参数:

参数 是否必须 说明
transactionId 唯一的事务标识符
.amount(…) 退款金额。该值必须大于0,并且不能超过交易的总金额。如果您未指定退款金额,则整笔交易金额将退还。
orderId(…) 如果您想通过getOrderId()与原始交易不同的交易,请使用此参数。否则,原始交易的orderId()价值将被复制到退款。在PayPal交易中,此字段映射到PayPal发票号码。PayPal帐单号码必须在您的PayPal商业帐户中唯一。PayPal交易的最大长度为255个字符或127个字符。
Result
result = gateway.transaction().refund("the_transaction_id");复制代码

注⚠️:如果交易无法找到,它会抛出一个NotFoundException。

2. 部分退款(只退其中一部分)

如果只想退还部分交易,请指定退款金额(即上述参数:.amount(…)):

Result
result = gateway.transaction().refund( "a_transaction_id", new BigDecimal("50.00"));result.isSuccess();// trueTransaction refund = result.getTarget();refund.getType();// Transaction.Type.CREDITrefund.getAmount();// 50.00Result
result = gateway.transaction().refund( "a_transaction_id", new BigDecimal("10.00"));result.isSuccess();// trueTransaction refund = result.getTarget();refund.getType();// Transaction.Type.CREDITrefund.getAmount();// 10.00复制代码
  • PayPal支持给定交易的单个和多个部分退款。只要退款金额小于初始交易金额,可以随时随地多次退款交易。

  • 如果已经部分退款交易,并且没有指定余额而执行其他退款,那么PayPal将退还剩余未退款的交易金额。

注⚠️:最好的做法是在创建更多相同交易之前,允许每个部分退款呼叫成功完成。如果单个事务有太多的同时退款请求,有些可能会失败,从网关返回一个错误。

3. 退款结果

如果处理器拒绝退款交易的捕获,则交易对象将具有processorSettlementResponseCode可用。

Transaction transaction = result.getTransaction();transaction.getStatus();// Transaction.Status.SETTLEMENT_DECLINEDtransaction.getProcessorSettlementResponseCode();// e.g. "4001"transaction.getProcessorSettlementResponseText();// e.g. "Settlement Declined"复制代码

转载地址:http://jphal.baihongyu.com/

你可能感兴趣的文章
怎么就死循环了!
查看>>
Jmeter之tomcat性能测试+性能改进措施
查看>>
MP实战系列(七)之集成springboot
查看>>
hexo 创建文章、标签、分类的Front-matter
查看>>
Confluence 6 复杂授权或性能问题
查看>>
从中国质造到淘宝心选:CBM赋能“数造”新品牌
查看>>
Python 学习笔记1
查看>>
python(logging )日志模块学习
查看>>
树莓派 之 爬虫(Scrapy)
查看>>
.Net外包篇:我是怎么看待外包的(二)
查看>>
A* 算法发明人 Nils Nilsson 逝世
查看>>
Netty 源码阅读入门实战(三)-服务端启动
查看>>
让年轻程序员少走弯路的14个忠告(引)
查看>>
BIO NIO AIO演变
查看>>
Linux 安装 SonarQube 6.0 及Maven项目的使用
查看>>
LibreOffice 6.2.2 发布,功能强大的开源办公套件
查看>>
「架构技术专题」什么是架构设计的五个核心要素?(3)
查看>>
数据分析展现工具SDC UE
查看>>
windows下cmd时复制dos中的内容 错误信息等
查看>>
DNA sequence(映射+BFS)
查看>>