//前后端基本固定复制改个参数

前端

fuqian(){let vm=this;// // 请求支付uni.request({url: 'http://????:9091/Ceshizhifu/pay',method: 'post',data:{"money":0.1,"subject":"标题","body":"内容"},success(r) {uni.requestPayment({provider: 'alipay',orderInfo: r.data, //微信、支付宝订单数据success: function (re) {console.log("支付回调",re)vm.jin();},fail: function (err) {console.log('fail:' , err);}});}});},

后台接口:
接收类:

@Data
public class PayParam {String money;//钱数String subject;//标题String body;//内容
}

yml配置

ali-zhifu:# appIdAPP_ID : # 商户的私钥APP_PRIVATE_KEY : # 支付宝公钥ALIPAY_PUBLIC_KEY : # 编码CHARSET : utf-8# 支付宝网关GATEWAY : https://openapi.alipaydev.com/gateway.do# 参数返回格式,只支持 jsonFORMAT: json#商户生成签名字符串所使用的签名算法类型,目前支持 RSA2 和 RSA,推荐使用 RSA2SIGN_TYPE: RSA2

工具类:

package Ceshi.utils.alizhifu;import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.domain.AlipayTradeAppPayModel;
import com.alipay.api.internal.util.AlipaySignature;
import com.alipay.api.request.AlipayTradeAppPayRequest;
import com.alipay.api.response.AlipayTradeAppPayResponse;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;import java.util.Map;/*** @author 翎墨袅* @version V1.0* @Package Ceshi.utils.alizhifu* @ClassName Alizhifu* @Description 阿里支付* @date 2020/7/28 14:49**/
@Component
public class Alizhifu implements InitializingBean {@Value("${ali-zhifu.APP_ID}")private String appid;@Value("${ali-zhifu.APP_PRIVATE_KEY}")private String appprivatekey;@Value("${ali-zhifu.ALIPAY_PUBLIC_KEY}")private String alipaypublickey;@Value("${ali-zhifu.CHARSET}")private String charset;@Value("${ali-zhifu.GATEWAY}")private String gateway;@Value("${ali-zhifu.FORMAT}")private String format;@Value("${ali-zhifu.SIGN_TYPE}")private String signtype;private static String APP_ID;private static String APP_PRIVATE_KEY;private static String ALIPAY_PUBLIC_KEY;private static String CHARSET;private static String GATEWAY;private static String FORMAT;private static String SIGN_TYPE;/*** 服务器启动的时候,ConstantPropertiesUtil初始化,调用里面的afterPropertiesSet方法,读取配置文件的内容* @throws Exception*/@Overridepublic void afterPropertiesSet() throws Exception {APP_ID = appid;APP_PRIVATE_KEY = appprivatekey;ALIPAY_PUBLIC_KEY = alipaypublickey;CHARSET = charset;GATEWAY = gateway;FORMAT = format;SIGN_TYPE = signtype;}private static AlipayClient alipayClient;private Alizhifu() {alipayClient = new DefaultAlipayClient(CHARSET, APP_ID, APP_PRIVATE_KEY, FORMAT, CHARSET,ALIPAY_PUBLIC_KEY , SIGN_TYPE);}private static AlipayClient getInstance() {if (alipayClient == null) {new Alizhifu();}return alipayClient;}/*** out_trade_no String 订单编号* product_code String 销售产品码,与支付宝签约的产品码名称。注:目前仅支持FAST_INSTANT_TRADE_PAY* total_amount double 订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]。* subject String 订单标题* body String 订单内容* time_expire Date 超时时间,格式:yyyy-MM-dd HH:mm:ss1* timeout_express String g格式:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。*/public static String pay(String money,String subject,String body) throws AlipayApiException {AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();// 时间戳+用户idString orderCode = System.currentTimeMillis() + "dgzjil";AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();model.setBody(body);model.setSubject(subject);// 创建一个订单编号model.setOutTradeNo(orderCode);model.setTimeoutExpress("15m");//十五分钟后失效model.setTotalAmount(money);//金额model.setProductCode("QUICK_MSECURITY_PAY");request.setBizModel(model);request.setNotifyUrl("http://39.106.76.233:9091/Ceshizhifu/notify_url");//通知地址AlipayTradeAppPayResponse response = getInstance().sdkExecute(request);if (response.isSuccess()) {System.out.println(money);System.out.println("调用成功");return response.getBody();} else {System.out.println("调用失败");return "调用失败";}}public static boolean check(Map<String,String> params) throws AlipayApiException {//这个接口是上面设置回调的自己不用调用//切记alipaypublickey是支付宝的公钥,请去open.alipay.com对应应用下查看。//boolean AlipaySignature.rsaCheckV1(Map<String, String> params, String publicKey, String charset, String sign_type)return AlipaySignature.rsaCheckV1(params, ALIPAY_PUBLIC_KEY, CHARSET,SIGN_TYPE);}
}

控制器

package Ceshi.Controller;import Ceshi.param.PayParam;
import Ceshi.utils.Result;
import Ceshi.utils.alizhifu.Alizhifu;
import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;@RestController
@RequestMapping(value="Ceshizhifu")
public class CeshizhifuController {@PostMapping("pay")public Result pay(@RequestBody PayParam param) {try {System.out.println("支付结果:" + Alizhifu.pay(param.getMoney(),param.getSubject(),param.getBody()));return Result.ok("data","成功");} catch (Exception e) {e.printStackTrace();return Result.error("失败");}}/*** 支付宝支付成功后.异步请求该接口** @param request* @return*/@PostMapping("notify_url")public void notify(HttpServletRequest request) {try {Enumeration<String> names = request.getParameterNames();Map<String, String> resData = new HashMap<String, String>();while (names.hasMoreElements()) {String name = names.nextElement();resData.put(name, request.getParameter(name));}Map<String,String> params = resData;System.out.println("支付回调结果:" + Alizhifu.check(params));} catch (Exception e) {e.printStackTrace();}}
}

依赖

<!-- alipay --><dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>3.1.0</version></dependency>

支付宝付款前后端(app)相关推荐

  1. 沙箱支付宝支付 前后端分离项目 实战

    对应教程视频:B站视频教程 pom.xml依赖: <!-- 支付宝支付jar包 --> <dependency><groupId>com.alipay.sdk< ...

  2. 实现SpringMVC + Vue 前后端分离 支付宝API付款

    项目场景: 需求:VUE + SpringMVC前后端分离项目使用支付宝API接口实现付款. 问题描述 提示为:验签出错,建议检查签名字符串或签名私钥与应用公钥是否匹配 解决方案: 1.密钥真的不匹配 ...

  3. 萝卜源码前后端源码+打包APP的教程

    简介: 今天分享一个萝卜源码前后端源码+打包APP的教程 我相信很多人都有源码但是不会配置复杂的AS工具导致一直没有打包好属于自己的APP 所以,今天我来了 萝卜前端APPJava源码  先把源码发出 ...

  4. 萝卜源码前后端源码 附打包APP的教程

    简介: 今天分享一个萝卜源码前后端源码+打包APP的教程 我相信很多人都有源码但是不会配置复杂的AS工具导致一直没有打包好属于自己的APP 所以,今天我来了 前端是蓝色的,后端是自适应手机的版后端, ...

  5. 商城前后端原型、商城prd文档、商城后台管理系统、商城app文档、电商需求文档、限时秒杀、电商平台、促销助力、拼团抽奖、电商文档、prd文档、电商前后端原型、电商原型、Axure电商系统、rp原型

    商城前后端.商城prd文档.商城后台管理系统.商城app文档.电商需求文档.限时秒杀.电商平台.促销助力.拼团抽奖.电商文档.prd文档.电商前后端原型.电商原型.Axure电商系统.rp原型 Axu ...

  6. java短视频开发技术_看Java学员如何用前后端分离技术搭建短视频健身APP

    知了堂在教学过程中一直十分注重学员的实践能力,每阶段结束必有项目考核,全面检验分析学员学习效果.为更好的进行下一阶段的课程学习,本周一Java32班学员迎来了第二阶段的项目考核. 让我们来看看此次考核 ...

  7. SpringBoot后台管理+Uniapp(混合APP)前端 之 酒店住宿+景点下单管理系统(SpringBoot前后端分离)

    酒店住宿+景点下单管理系统(SpringBoot前后端分离) 之 SpringBoot后台管理+Uniapp(混合APP)前端 SpringBoot前后端分离项目-Thymeleaf模板引擎景区旅游管 ...

  8. PHP开发B2C商城 微信小程序商城系统源码+数据库,轻量级前后端分离的电商系统,支持微信小程序 + H5+ 公众号 + APP

    项目介绍 一款轻量级.高性能.前后端分离的电商系统,支持微信小程序 + H5+ 公众号 + APP,前后端源码完全开源,看见及所得,完美支持二次开发,可学习可商用,让您快速搭建个性化独立商城. 完整代 ...

  9. 视频教程-React全栈:前后端分离的招聘Web App项目(含资料)-ReactJS

    React全栈:前后端分离的招聘Web App项目(含资料) 张长志技术全才.擅长领域:区块链.大数据.Java等.10余年软件研发及企业培训经验,曾为多家大型企业提供企业内训如中石化,中国联通,中国 ...

最新文章

  1. Java HashMap和Hashtable的区别
  2. 【Android 多媒体开发】 MediaPlayer 状态机 接口 方法 解析
  3. yolov配置之:cuda、 cudnn安装
  4. 神策数据张何津:构建银行数字化运营体系,赋能业态新发展
  5. JS学习笔记:防止发生命名冲突
  6. CentOS安装PinPoint
  7. centos dns服务器_用 OpenStack Designate 构建一个 DNS 即服务(DNSaaS) | Linux 中国
  8. 武器系统仿真技术(一):系统误差分析的蒙特卡洛算法
  9. spss无法连接到本地计算机,有关IBM SPSS Statistics无法打开的几个原因,附带解决方法...
  10. Nooi 一个Onedrive管理器
  11. Windows XP 黑屏补丁
  12. C/C++ 学生考勤系统
  13. 【NC204267】牛牛染颜色
  14. 福州大学计算机学硕分数,2021年福州大学考研录取分数线应该在哪里查询?
  15. SimpleDraweeView圆角
  16. python集合操作班级干部竞选演讲稿_【必备】竞选班干部演讲稿集合8篇
  17. 财报前瞻 | 互联网告别粗放经营,精耕行业价值成腾讯音乐年报看点
  18. 直播回顾|第9期5G消息云课堂,快递服务的“数字化”转型 | 文末有回放
  19. java bs设计模式_Java进阶篇设计模式之十三
  20. ireader android 源码,仿ireader书架 - androidCode的个人空间 - OSCHINA - 中文开源技术交流社区...

热门文章

  1. ProM安装以及配置
  2. linux prom命令解释,eeprom 执行boot PROM命令
  3. 数据与知识管理属于计算机科学研究方向中,基于知识的应用生命周期管理研究-计算机科学与技术专业论文.docx...
  4. 不可错过的五款开源图形处理软件
  5. ASP导出Word带页眉页脚,中文不乱码
  6. 关于 Redlock 的讨论
  7. Unity:SLG游戏画线模块
  8. DDN周报|3月26日-4月1日
  9. 专访李云:从通讯行业的架构师到互联网“新兵” 李云csdn
  10. Microsoft Visual Studio Installer Projects下载安装太慢