沙箱-简单实现支付宝网页支付功能
1.在实现前我们得先了解支付宝支付功能-他是需要一个真实的软件 但我们没有真实的应用软件,所以支付宝给我们提供了一个沙箱的功能。沙箱就是一个虚拟的假的应用软件。了解沙箱可以看支付宝文档中心。----沙箱环境 | 开放平台
2.我们创建自己的沙箱账号
根据文档的操作我们进去沙箱环境,使用自己的支付宝登录
我们可以看到APPID
点击公钥的查看 查看 应用私钥 和 支付宝公钥
右侧沙箱账号 里面 的买家账号和密码 就是我们支付的时候使用的账号,金钱不够可以充值,里面还可以下载沙箱版的支付宝,就可以使用沙箱版的支付宝扫码支付 ,沙箱版支付宝登录使用沙箱买家账号
3.编写代码
我们先导包,支付宝的包
<!--支付宝包--> <!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java --> <dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>4.22.0.ALL</version> </dependency>
编写信息 config类
直接在config下创建一个类就行
public class AliPayConfig {//APPID对应支付宝账号 public static String APP_ID="20210....";//应用私钥public static String MERCHANT_PRIVATE_KEY="MIIEvgIBADANBgkqh...";//支付宝私钥public static String ALIPAY_PUBLIC_KEY="MIIBI......";//这个是支付成功后要跳转到哪里的页面 success是我控制层里面的路径 改成自己的 也可以是一个页面.htmlpublic static String NOTIFY_URL="http://127.0.0.1:80/success";//页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 和上面一样public static String RETURN_URL="http://127.0.0.1:80/success";//签名方式 这个不用改public static String SIGN_TYPE="RSA2";//字符编码格式 不用改public static String CHARSET="utf-8";//支付宝网关(沙盒环境) 不用改public static String GATEWAY_URL="https://openapi.alipaydev.com/gateway.do"; }
编写操作类
编写了一个controller
//支付 @ResponseBody @PostMapping("/toBuyByAli") public String tobuy(@RequestParam("out_trade_no") String out_trade_no,@RequestParam("total_amount") String total_amount,@RequestParam("subject") String subject,@RequestParam("body") String body){//获得初始化的AlipayClientAlipayClient alipayClient = new DefaultAlipayClient(AliPayConfig.GATEWAY_URL,AliPayConfig.APP_ID, AliPayConfig.MERCHANT_PRIVATE_KEY,"json", AliPayConfig.CHARSET, AliPayConfig.ALIPAY_PUBLIC_KEY, AliPayConfig.SIGN_TYPE);//设置请求参数AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();alipayRequest.setReturnUrl(AliPayConfig.RETURN_URL); //设置同步回调通知alipayRequest.setNotifyUrl(AliPayConfig.NOTIFY_URL); //设置异步回调通知//设置支付参数alipayRequest.setBizContent("{\"out_trade_no\":\"" + out_trade_no + "\","+ "\"total_amount\":\"" + total_amount + "\","+ "\"subject\":\"" + subject + "\","+ "\"body\":\"" + body + "\","+ "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");//请求String result = null;try {result = alipayClient.pageExecute(alipayRequest).getBody();} catch (AlipayApiException e) {// TODO Auto-generated catch blocke.printStackTrace();}return result; }
四个参数得从前端页面获取
@RequestParam("out_trade_no") String out_trade_no, @RequestParam("total_amount") String total_amount, @RequestParam("subject") String subject, @RequestParam("body") String body
我使用了ajax方式
当点击去支付 会实现tobuy()方法
function tobuy(){var out_trade_no=Math.random().toString(36).substr(2,10);//订单单号 可以根据自己喜欢生成随机的唯一的单号 可以根据自己喜欢改var total_amount=document.getElementById("sumprice").innerText;//金钱 获取页面中金钱数 可以根据自己喜欢改var subject="测试订单名称";// 可以根据自己喜欢改var body="测试描述";//可以根据自己喜欢改var xmlhttp;if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safarixmlhttp=new XMLHttpRequest();}else{// code for IE6, IE5xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}xmlhttp.open("POST","http://localhost/toBuyByAli?out_trade_no="+out_trade_no+"&total_amount="+total_amount+"&subject="+subject+"&body="+body,true); //路径和参数改成自己的xmlhttp.withCredentials=true;xmlhttp.crossDomain=true;xmlhttp.send();xmlhttp.onreadystatechange=function(){//判断readyState就绪状态是否为4,判断status响应状态码是否为200if (xmlhttp.readyState==4 && xmlhttp.status==200){document.write(xmlhttp.responseText);}} }
最后就实现了 因为 document.write(xmlhttp.responseText);返回的是一个from表单和一个js 这个js会执行form实现跳转 跳转支付宝支付页面。
我们使用准备的沙箱账号就可以支付了。
原理:可以查看支付宝文档中心,demo在线调试
Demo 在线调试 | 开放平台
沙箱-简单实现支付宝网页支付功能相关推荐
- php tp 支付宝 支付,php实现的支付宝网页支付功能示例【基于TP5框架】
本文实例讲述了php实现的支付宝网页支付功能.分享给大家供大家参考,具体如下: 1.提交支付请求 require_once './payment/zfb/pagepay/service/AlipayT ...
- 支付宝app支付功能-服务端的实现-python3版
支付宝app支付功能-服务端的实现-python3版 一:需求说明 二:支付宝app支付处理流程 三:所需依赖 3.1 依赖库 3.2 支付配置 3.2.1 沙箱环境配置 3.2.2 正式环境配置 四 ...
- 支付宝网页支付交互流程 nest 版
自己整理了一份支付宝网页支付的交互流程 , 完全按交互流程响应步骤介绍的代码,效果图.因为平时主要用node开发,所以服务端用的node,框架是 nest. 用最精简的代码实现支付功能 1,流程图 为 ...
- Android接入支付宝实现支付功能
Android接入支付宝实现支付功能 我本来是想直接讲Android支付这一块的,包括支付宝,微信,其他第三方整合支付等,但是微信开放平台他对我的账号做了限制,所有我今天就先把重心放在支付宝的支付上, ...
- php 支付宝订单查询_php实现支付宝APP支付功能与源码
原标题:php实现支付宝APP支付功能与源码 码农程序自学与交流微信群 微信群有,就怕你进群发一些乱七八糟的,群有群规,既然规定是技术学习交流,那就不要发广告信息,推广信息,小程序分享,刷屏刷图等!一 ...
- java对接支付宝实现支付功能
** java对接支付宝实现支付功能 ** Controller /*** 支付功能* @return*/ @RequestMapping("/test") public Mode ...
- ios支付宝支付失败不回调_iOS 支付宝网页支付回调问题
今天遇到支付宝网页支付回调的问题 当手机里面没有支付宝客户端的时候,会自动调起网页支付页面,但是我发现我原来写在AppDelegate.m里面的代码没走. 造成的结果是,不管是支付成功,还是退出支付, ...
- 移动网页支付(微信H5支付和支付宝网页支付)
支付宝网页支付: 1.前端发送(流水号,手机号,产品ID,金额,回调地址,取消地址,支付类型)支付信息给后端, 2.后端组装数据,通过SDK向支付宝发起请求,返回数据给前端. let loc =&qu ...
- python支付程序源码_python项目中实现支付宝网页支付
支付流程 在一次项目中需要引入支付宝接口实现支付宝支付,使用场景如下: 用户在我方商户系统中选择了购买商品,我方商户系统生成一张支付订单,用户点击订单的支付按钮后,页面会跳转到一个支付二维码的界面. ...
- 秀儿!用SSM框架实现了支付宝的支付功能,神操作啊
作者:OUYANGSIHAI 来源:https://urlify.cn/aYrmIr 前言 本教程详细介绍了如何使用ssm框架实现支付宝支付功能.本文章分为两大部分,分别是「支付宝测试环境代码测试」和 ...
最新文章
- Android开发--List与ArrayList区别
- JDK8对并发的新支持
- keepalived 原理,安装,配置
- C++二维数组作为函数参数
- [LeetCode] 3. Longest Substring Without Repeating Characters 题解
- java程序能转变为javafx_躁!DJ 风格 Java 桌面音乐播放器
- webComponent初体验
- 【学习Spring框架】依赖注入和控制反转异同?
- 不用找,你想要的建筑 华丽 豪华3d材质贴图素材都在这里
- 桥牌笔记:机会最多的打法
- [vue-ts]ts版本问题合集
- Android7(N)中webview导致应用内语言切换失效
- 道格拉斯普克算法(简化线段点)
- xlsx表格怎么筛选重复数据_excel怎么筛选两个表中相同数据
- ReadLikeHumans: Autonomous,Bidirectional and Iterative Language Modeling for Scene Text Recognition
- java socket 读取文件_java中ServerSocket读取文件流不是分行读取
- 欢迎来到魔法的未来~
- Linux-vim编辑器
- Unity3d之表情动画--眨眼
- 推荐一款实用的用户画像工具--快鲸scrm
热门文章
- 服务器u单核性能排行,CPU单核性能天梯图2021 2021年最新CPU单核性能排行天梯图...
- ribbon的注解 @LoadBalanced 报错 No instances available for [IP]
- 利用pdfbox和itext包将pdf转换为图片
- ICE笔记(02):简单的ICE通信应用-Hello World
- ice php 5.6.32,PHP通过ice调用python程序
- DSP28377 I2C开发笔记
- ipa在线安装搭建_在线安装IPA 文件和视频下载
- 快速学习JasperReport-数据填充
- Ardunio开发实例-MLX90614红外测温仪
- android 多媒体封装格式详解---MKV