支付宝小程序中唤起支付(前后端)

Java后台获取支付宝支付唯一订单号

  /*** 支付宝小程序支付*/@PostMapping(value = "/xcxPayZFBTHREE")@ResponseBodypublic Map<String,Object> xcxPayZFBTHREE(@RequestBody byte[] req) {HashMap<String, Object> objectObjectMap = new HashMap<>();JSONObject json = JSONObject.parseObject(new String(req, Charset.forName("UTF-8")));System.out.println("请求参数"+json);String ip = "127.0.0.1";String money = null;String remark = null;AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",小程序appid,应用私钥,"json","UTF-8",支付宝公钥,"RSA2");//获得初始化的AlipayClient//设置请求参数AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();JSONObject map=new JSONObject();//订单号map.put("out_trade_no",订单号);//金额 这里的金额是以元为单位的可以不转换但必须是字符串map.put("total_amount",金额);//描述map.put("subject",remark);//用户唯一标识id 这里必须使用buyer_id 参考文档map.put("buyer_open_id",支付宝小程序的openid);//对象转化为json字符串String jsonStr=map.toString();//商户通过该接口进行交易的创建下单request.setBizContent(jsonStr);//回调地址 是能够访问到的域名加上方法名request.setNotifyUrl(回调地址);String orderStr=null;try {//使用的是executeAlipayTradeCreateResponse response = alipayClient.execute(request);orderStr=response.getTradeNo();System.out.println("支付返回结果订单号"+response.getTradeNo());} catch (Exception e) {e.printStackTrace();}objectObjectMap.put("status","0000");objectObjectMap.put("orderStr",orderStr);return objectObjectMap;}

支付宝小程序支付成功回调地址 

  /*** 异步通知-----支付宝小程序* 这里面可以写判断支付成功之后的及具体业务需求*/@RequestMapping(value = "/payNotifyZFBSIX", method = {RequestMethod.POST, RequestMethod.GET})@ResponseBodypublic String payNotifyZFBSIX(HttpServletRequest request) {System.out.println("支付通知=1" + request);/*** 这种方式效率高一点*///签名方式String sign_type="RSA2";//对待签名字符串数据通过&进行拆分Map requestParams = request.getParameterMap();LinkedHashMap<String, String> map =  new LinkedHashMap<String, String>();//把拆分数据放在map集合内for (Object o : requestParams.keySet()) {String name = (String) o;String[] values = (String[]) requestParams.get(name);String valueStr = "";for (int i = 0; i < values.length; i++) {valueStr = (i == values.length - 1) ? valueStr + values[i]: valueStr + values[i] + ",";}map.put(name, valueStr);}System.out.println("支付通知=1" + map);try {
//            boolean b = AlipaySignature.rsaCertCheckV1(map, publicKey, "utf-8", sign_type);String out_trade_no = map.get("out_trade_no");System.out.println("支付订单号:"+out_trade_no);String trade_status = map.get("trade_status");System.out.println("支付状态:"+out_trade_no);if("TRADE_SUCCESS".equals(trade_status)){}System.out.println(map.toString());} catch (Exception e) {System.out.println("支付宝异步验签失败:{}"+e.getMessage());}return null;}

支付宝小程序前端唤起支付窗口

    pay(e){var that=this;my.tradePay({// orderStr: e.orderStr ,//支付请求参数字符串tradeNO : e //支付请求参数字符串}, function(result) {if (result.resultCode === '9000') {console.log('支付成功');} else if (result.resultCode === '6001') {console.log('用户取消支付');} else {console.log('支付失败');}// that.subMess()}, function(error) {//支付失败回调函数uni.showToast({title: '支付失败'});});},

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

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

相关文章

jax可微分编程的笔记(7)

jax可微分编程的笔记(7) 第七章 优化算法 从优化理论的整体框架来看&#xff0c;任何优化问题都可以被分解为 模型的建立&#xff0c;损失函数的构造以及优化算法的选取这三个部分。 其中优化算法的具体形式&#xff0c;又依赖于步长下降方向和终止条件 的选取。 对于多维函…

JavaScript 浏览器元素滚动 scrollIntoView()

scrollIntoView() ​ DOM 规范中没有涉及的一个问题是如何滚动页面中的某个区域。为填充这方面的缺失&#xff0c;不同浏览器实现了不同的控制滚动的方式。在所有这些专有方法中&#xff0c;HTML5 选择了标准化 scrollIntoView()。 ​ scrollIntoView() 方法存在于所有 HTML …

深度学习中常见的backbone、neck、head的理解

在深度学习中&#xff0c;常见的backbone、neck和head是指网络结构的不同部分&#xff0c;它们各自承担着不同的功能&#xff1a; Backbone&#xff08;骨干网络&#xff09;&#xff1a;骨干网络通常是指整个深度神经网络的主要部分&#xff0c;负责提取输入数据的特征。骨干网…

寒假作业Day 02

这是第二天的作业&#xff0c;fighting&#xff01; Day 02 一、选择题 首先char* s[6]是指针数组&#xff0c;也就是其存储的都是这些字符串的地址&#xff0c;其实际上的类型为char**&#xff0c;而fun函数传入了s数组的首地址。而后续fun函数中打印字符&#xff0c;p[i]即…

ad18学习笔记十六:如何放置精准焊盘到特定位置,捕抓功能的讲解

网上倒是一堆相关的指导 AD软件熟练度提升&#xff0c;如何设置板框捕捉&#xff1f;_哔哩哔哩_bilibili 关于Altium Designer 20 的捕抓功能的讲解_ad捕捉设置-CSDN博客 AD软件捕捉进阶实例&#xff0c;如何精确的放置布局元器件&#xff1f;_哔哩哔哩_bilibili AD绘制PCB…

项目-SERVER模块-Socket模块

Socket模块 一、Socket模块是什么&#xff1f;二、代码实现1.成员变量2.构造、析构函数3.获取套接字文件描述符4.创建套接字5.绑定地址信息6.开始监听连接请求7.向服务器发起连接8.获取新连接9.接收数据10.非阻塞接收数据11.发送数据12.非阻塞发送数据13.关闭套接字14.创建一个…

何时使用子查询?一个使用子查询的SQL示例及其工作原理

何时使用子查询&#xff1f;给出一个使用子查询的SQL示例&#xff0c;并解释其工作原理。 子查询&#xff0c;也称为内部查询或嵌套查询&#xff0c;是嵌入在另一个SQL查询中的查询。外部查询&#xff0c;有时称为外部查询或主查询&#xff0c;是包含子查询的查询。子查询可以…

20240301作业

1.使用fwrite、fread将一张随意的bmp图片&#xff0c;修改成德国的国旗 #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> int main(int argc, const char *argv[]) {FILE* fp fopen("./gaoda.bmp","…

24.3.1 《CLR via C#》 笔记9

第十二章 泛型 泛型&#xff1a;支持泛型值类型、泛型引用类型、泛型接口、泛型委托&#xff1b;允许在引用类型、值类型和接口中定义泛型方法&#xff1b;泛型参数变量要么称为T&#xff0c;要么以T开头 具有泛型类型参数的类型称为开放类型&#xff0c;不允许构造实例&#…

Java毕业设计 基于SpringBoot vue 社区团购系统

Java毕业设计 基于SpringBoot vue 社区团购系统 SpringBoot vue 社区团购系统 功能介绍 前端用户: 首页 图片轮播 商品信息 商品分类展示 搜索 商品详情 点我收藏 添加到购物车 立即购买 我要开团 去参团 评论 公告资讯 资讯详情 登录 注册 个人中心 更新信息 点我充值 我的订…

Mysql笔记3

1、快速创建表 原理&#xff1a; 将一个查询结果当做一张表新建 这个可以完成表的快速复制 create table emp2 as select * from emp; mysql> select * from emp2; ---------------------------------------------------------------------- …

【vscode提取函数快捷键】提取函数,减少大方法的复杂度

在 Visual Studio Code 中&#xff0c;提取函数的快捷键取决于你所使用的编程语言和安装的插件。以下是一些常用的快捷键组合&#xff0c;可以用来在 Visual Studio Code 中提取函数&#xff1a; 执行以下步骤来提取函数&#xff1a; 选中要提取的代码块。右键单击选中的代码…

System Verilog学习笔记(十二)——数组(2)

System Verilog学习笔记&#xff08;十二&#xff09;——数组&#xff08;2&#xff09; 动态数组 在编译时不会为其定制尺寸&#xff0c;而是在仿真运行时来确定动态数组一开始为空&#xff0c;需要使用new[ ]来为其分配空间声明方式 int dyn[],d2[]; //声明了两个动态数组…

git之远程操作

一.分布式版本控制系统 分布式版本控制系统通常也有⼀台充当“中央服务器”的电脑&#xff0c;但这个服务器的作⽤仅仅是⽤来⽅便“交换”⼤家的修改&#xff0c;没有它⼤家也⼀样⼲活&#xff0c;只是交换修改不⽅便⽽已。有了这个“中央服务器”的电脑&#xff0c;这样就不怕…

ChatGPT学习第四周

&#x1f4d6; 学习目标 ChatGPT实践操作 通过实际操作和练习&#xff0c;加深对ChatGPT功能的理解。 项目&#xff1a;创建一个ChatGPT应用案例 设计一个基于ChatGPT的小项目&#xff0c;将理论应用于实践。 ✍️ 学习活动 学习资料 《万字干货&#xff01;ChatGPT 从零完…

[C++核心编程](一):内存分区

目录 代码区 全局区 栈区 堆区 new操作符 不同区域存放的数据&#xff0c;赋予不同的生命周期&#xff0c;给予开发人员更大的灵活编程。 代码区 存放二进制代码&#xff0c;由操作系统管理未执行程序&#xff08;.exe&#xff09;前已经存在共享&#xff0c;对频繁执行…

达梦数据库查询语句内存溢出问题解决

背景&#xff1a;达梦数据库使用过程中&#xff0c;某天突然服务宕机&#xff0c;导致各类后端服务无法注册到nacos上&#xff0c;重启之后nacos正常启动&#xff0c;可执行一条两千多条数据量的连表查询时间很长&#xff0c;甚至会报错&#xff0c;经查看日志发现在查询过程中…

【C语言】常见的动态内存管理错误

前言 上一篇介绍了C语言中 动态内存管理函数&#xff0c;本片讲解的是 在我们使用动态内存管理时 常见的错误&#xff0c;一起来看看吧~ 欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 1.对NULL指针的解引⽤操作 错…

什么是前端框架中的数据绑定(data binding)?有哪些类型的数据绑定?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

YOLOv5白皮书-第Y4周:common.py文件解读

YOLOv5白皮书-第Y4周:common.py文件解读 YOLOv5白皮书-第Y4周:common.py文件解读0.导入需要的包和基本配置1.基本组件1.1 autopad1.2 Conv1.3 Focus1.4 Bottleneck1.5 BottleneckCSP1.6 C31.7 SPP1.8 Concat1.9 Contract、Expand 2.重要类2.1 非极大值抑制&#xff08;NMS&…