订单点击付款支付接口的实现(支付宝付款的实现)

订单点击付款支付接口的实现

  • 前言
  • 一、DefaultAlipayClient是什么?
  • 二、支付宝付款代码的实现


前言

该付款功能只支持支付宝付款:

工作过程中遇到了一个我的订单中展示出来详细的订单信息,然后在待付款的订单信息里面实现付款的接口的问题,可把我这个小菜鸡给难坏了,问了前辈大佬,一点点心得大家互相学习。


原型图类似这样的
在这里插入图片描述

首先,我们得明白支付宝的接口AlipayClient里面的DefaultAlipayClient

一、DefaultAlipayClient是什么?

AlipayClient alipayClient = new DefaultAlipayClient(URL, APP_ID, APP_PRIVATE_KEY, FORMAT, CHARSET, ALIPAY_PUBLIC_KEY, SIGN_TYPE);

在这里插入图片描述

二、支付宝付款代码的实现

实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:
alipay.trade.app.pay
AlipayTradeAppPayRequest alirequest = new AlipayTradeAppPayRequest();

SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();

一定要提前注入AlipayClient
在这里插入图片描述

代码如下():

logger.info("重新支付订单");AddressResponseDTO address = new AddressResponseDTO();//获取请求参数Object obj = parseJsonString(orderId, SubmitOrderRequestDTO.class);if (!obj.equals(DATAPARSINGMESSAGE)) {//转换类SubmitOrderRequestDTO order = (SubmitOrderRequestDTO) obj;//实例化客户端if(alipayClient==null)alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", "自己的appid","自己的私钥","json", "UTF-8", "公钥", "RSA2");//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.payAlipayTradeAppPayRequest alirequest = new AlipayTradeAppPayRequest();//SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();model.setBody("商城订单");model.setSubject("商城订单");//订单idmodel.setOutTradeNo(sysOrder.getOrderId());model.setTimeoutExpress("20m");//订单金额model.setTotalAmount(sysOrder.getOriginalAmount().toString());model.setProductCode("QUICK_MSECURITY_PAY");alirequest.setBizModel(model);//这里输入你自己app商户的地址alirequest.setNotifyUrl("自己的请求接口");try {//这里和普通的接口调用不同,使用的是sdkExecuteAlipayTradeAppPayResponse response = alipayClient.sdkExecute(alirequest);if(response.isSuccess()) {address.setCodeUrl(response.getBody());address.setRetCode(0);address.setRetMessage("下单成功,等待支付");}else {address.setRetCode(500);address.setOrderNum(orderId);address.setRetMessage("支付宝下单失败");}} catch (Exception e) {e.printStackTrace();}}else {address.setRetCode(402);address.setRetMessage("参数错误");}String jsonString = createJsonString(address);logger.info("[app_rsp]" + createJson(address));return jsonString;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/9524.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

k8s Label 2

在 k8s 中,我们会轻轻松松的部署几十上百个微服务,这些微服务的版本,副本数的不同进而会带出更多的 pod 这么多的 pod ,如何才能高效的将他们组织起来的,如果组织不好便会让管理微服务变得混乱不堪,杂乱无…

中文模型的奋起直追:MOSS、baichuan-7B和ChatGLM2-6B的部署与微调

第一部分 复旦MOSS MOSS是复旦大学邱锡鹏团队推出的一个支持中英双语和多种插件的开源对话语言模型,moss-moon系列模型具有160亿参数,在FP16精度下可在单张A100/A800或两张3090显卡运行,在INT4/8精度下可在单张3090显卡运行。MOSS基座语言模…

vue页面中一个小列表中多选框的选中状态的两种设置方法

第一种方法:所有类型都是固定的、后台提供了选中状态的接口(页面进入时默认展示所有类型和类型的选中状态 思路: 1、列出所有类型同时与后台规定好每种类型的id与对应的名称 2、在mounted中执行获取后台给定的选中状态(包含1个或多个的id数组) 3、将得到的结构绑定到el-ch…

【JavaWeb基础】分层解耦

一、知识点整理 1、IOC与DI入门 1)控制反转: Inversion 0f Control,简称I0C。对象的创建控制权由程序自身转移到外部(容器),这种思想称为控制反转。 2)依赖注入: Dependency lnjection,简称DI。容器为应用程序提供运…

Z-NTFS2EXCEL 文件服务器权限可视化报告

Z-NTFS2EXCEL Z-NTFS2EXCEL是一个用于快速获取Windows文件服务器权限信息并进行确认或审计的程序。 github地址:https://github.com/ericzhong2010/Z-NTFS2EXCEL 使用示例 编辑ini配置文件 执行exe程序文件 检查与确认结果 作者信息 作者:Eric…

Pycharm远程设置 DDP简单介绍

前言 最近接到一些改代码或者帮助debug的需求,大多数不是在本地而是autodl这种服务器上,有些人可能不太了解如何设置远程环境。通常在实验室一般都是在本地调好代码然后scp到服务器上去训练,不过这就需要本地有显卡能测试代码是否能跑通&…

Python自动化测试框架:unittest介绍

Unittest是Python中最常用的测试框架之一,它提供了丰富和强大的测试工具和方法,可以帮助开发者更好地保证代码质量和稳定性,本文就来介绍下Unittest单元测试框架 1. 介绍 unittest是Python的单元测试框架,它提供了一套丰富的测试…

Leetcode---352周赛

周赛题目 2760. 最长奇偶子数组 2761. 和等于目标值的质数对 2762. 不间断子数组 2763. 所有子数组中不平衡数字之和 一、最长奇偶子数组 这题的数据范围允许用暴力来做,只要我们分别枚举左端点left和右端点right,然后看区间[left,right]是否符合题目条…

flutter3.7版本下使用flutter boost解决使用platview崩溃或异常问题

背景 工程使用了混合开发,使用flutter boost插件,flutter 的activity1 frament1 跳转activity2 frament2,frament1 包含platformView,按照上面老哥解决崩溃问题的基础上,出现activity2 frament2返回activity1 framen…

golang 协程的实现原理

核心概念 要理解协程的实现, 首先需要了解go中的三个非常重要的概念, 它们分别是G, M和P, 没有看过golang源代码的可能会对它们感到陌生, 这三项是协程最主要的组成部分, 它们在golang的源代码中无处不在. G (goroutine) G是goroutine的头文字, goroutine可以解释为受管理的…

C++图形开发(6):落下后能弹起的小球

文章目录 1.重复下落的小球2.落下后能弹起的小球3.能上下反弹的小球4.符合重力的能上下反弹的小球 今天我们来尝试实现一个落地后可以弹起的小球 1.重复下落的小球 首先,我们要来实现一个小球的重复下落 我们知道,在前面的代码中(详见C图形…

ChatGPT与Excel结合_编写VBA宏

先来解释下什么是Excel vba宏 ⭐Excel VBA宏(Visual Basic for Applications)是一种用于在Microsoft Excel中自动化和扩展功能的编程语言。VBA允许用户编写自定义的脚本或宏,以便通过执行一系列指令来自动完成特定任务。 使用Excel VBA宏&a…