Paypal 支付粗糙集成

2023-10-21 19:20
文章标签 支付 集成 paypal 粗糙

本文主要是介绍Paypal 支付粗糙集成,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

因为paypal的官方文档上说明paypal的支付sdk其实已经被废弃了,所以我用了 官方的解释~ 所以我这里就直接参考了braintree sdk sample
这个例子可以直接运行 braintree集成的官网地址

支付前准备

准备palpay的账号和braintree的账号 他们两个是从属关系但又不是一样的,sandbox环境可以关联起来 但是生产环境又不一样 很烦

  • 首先进入braintree的沙箱平台 创建的自己的apk,在setting->processing 关联paypal的账号 因为公司以前的用paypal的 如下图地址

  • 在paypal 的控制台中创建自己的apk 文件并关联沙箱测试账号

  • 在sandbox->account 中以facilitor结尾的是商家账号 以buyer结尾的是买卖账号 测试时候使用买家账号就可以了

代码编写

我用的是drop-in 集成方便 同时还能集成信用卡付款、google pay、apple pay

整体的流程图如下地址 要知道的是客户端不处理付款 主要的付款操作都是在服务器执行的

  • 首先在module目录中依赖com.braintreepayments.api:drop-in:3.2.1注意依赖这个 项目的 compileSdkVersion要在26以上
  • 流程解释下 首先要从服务器端获取token,然后客户端像braintree服务器请求nonce 然后发送给自己的服务器 服务器接收后生成transaction 在向braintree服务器做支付处理
  • 然后根据官方的参考文档执行就行了 地址

具体集成还是比较简单的关键是账号的准备太麻烦了

如果你在集成的时候服务端还没做好 这里有个服务端的例子可以临时充当下后台~地址 这个例子直接在as中运行就可以了 不过要简单的修改下 增加教程中的两个接口 client_token 和check 具体代码如下
private String token="";
@RequestMapping(value = "/client_token", method = RequestMethod.GET)
public @ResponseBody String clientToken() {
JSONObject object=new JSONObject();
token=gateway.clientToken().generate();
object.put("token",token);
return object.toString();
}

`
@RequestMapping(value = “/checkout”, method = RequestMethod.POST)
@ResponseBody
public String checkoutHere( @RequestBody String json) {

    JSONObject ob=new JSONObject(json);String nonceFromTheClient = ob.optString("payment_method_nonce");System.out.println("nonce:"+nonceFromTheClient);TransactionRequest request = new TransactionRequest().amount(new BigDecimal("18.00")).paymentMethodNonce(nonceFromTheClient)

// .paymentMethodToken(token)
// .paypalAccount().done()
.options()
.submitForSettlement(true)
.done();

    Result<Transaction> result = gateway.transaction().sale(request);JSONObject jsonObject=new JSONObject();if (result.isSuccess()) {Transaction transaction = result.getTarget();jsonObject.put("message",transaction.getId());System.out.println("transaction1:"+transaction.getId());} else if (result.getTransaction() != null) {Transaction transaction = result.getTransaction();System.out.println("transaction2:"+transaction.getId());jsonObject.put("message1",transaction.getId());} else {StringBuilder errorString = new StringBuilder();for (ValidationError error : result.getErrors().getAllDeepValidationErrors()) {errorString.append("Error: ").append(error.getCode()).append(": ").append(error.getMessage()).append("\n");}jsonObject.put("error",errorString.toString());System.out.println("error:"+errorString.toString());}return jsonObject.toString()+"\nnonceFromTheClient: "+nonceFromTheClient+"\ntoken:"+token;
}`

这篇关于Paypal 支付粗糙集成的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/lzcmagic/article/details/79579110
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/256428

相关文章

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

SpringBoot集成LiteFlow工作流引擎的完整指南

《SpringBoot集成LiteFlow工作流引擎的完整指南》LiteFlow作为一款国产轻量级规则引擎/流程引擎,以其零学习成本、高可扩展性和极致性能成为微服务架构下的理想选择,本文将详细讲解Sp... 目录一、LiteFlow核心优势二、SpringBoot集成实战三、高级特性应用1. 异步并行执行2

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

Java集成Onlyoffice的示例代码及场景分析

《Java集成Onlyoffice的示例代码及场景分析》:本文主要介绍Java集成Onlyoffice的示例代码及场景分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 需求场景:实现文档的在线编辑,团队协作总结:两个接口 + 前端页面 + 配置项接口1:一个接口,将o

Swagger2与Springdoc集成与使用详解

《Swagger2与Springdoc集成与使用详解》:本文主要介绍Swagger2与Springdoc集成与使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1. 依赖配置2. 基础配置2.1 启用 Springdoc2.2 自定义 OpenAPI 信息3.