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 在线调试 | 开放平台

沙箱-简单实现支付宝网页支付功能相关推荐

  1. php tp 支付宝 支付,php实现的支付宝网页支付功能示例【基于TP5框架】

    本文实例讲述了php实现的支付宝网页支付功能.分享给大家供大家参考,具体如下: 1.提交支付请求 require_once './payment/zfb/pagepay/service/AlipayT ...

  2. 支付宝app支付功能-服务端的实现-python3版

    支付宝app支付功能-服务端的实现-python3版 一:需求说明 二:支付宝app支付处理流程 三:所需依赖 3.1 依赖库 3.2 支付配置 3.2.1 沙箱环境配置 3.2.2 正式环境配置 四 ...

  3. 支付宝网页支付交互流程 nest 版

    自己整理了一份支付宝网页支付的交互流程 , 完全按交互流程响应步骤介绍的代码,效果图.因为平时主要用node开发,所以服务端用的node,框架是 nest. 用最精简的代码实现支付功能 1,流程图 为 ...

  4. Android接入支付宝实现支付功能

    Android接入支付宝实现支付功能 我本来是想直接讲Android支付这一块的,包括支付宝,微信,其他第三方整合支付等,但是微信开放平台他对我的账号做了限制,所有我今天就先把重心放在支付宝的支付上, ...

  5. php 支付宝订单查询_php实现支付宝APP支付功能与源码

    原标题:php实现支付宝APP支付功能与源码 码农程序自学与交流微信群 微信群有,就怕你进群发一些乱七八糟的,群有群规,既然规定是技术学习交流,那就不要发广告信息,推广信息,小程序分享,刷屏刷图等!一 ...

  6. java对接支付宝实现支付功能

    ** java对接支付宝实现支付功能 ** Controller /*** 支付功能* @return*/ @RequestMapping("/test") public Mode ...

  7. ios支付宝支付失败不回调_iOS 支付宝网页支付回调问题

    今天遇到支付宝网页支付回调的问题 当手机里面没有支付宝客户端的时候,会自动调起网页支付页面,但是我发现我原来写在AppDelegate.m里面的代码没走. 造成的结果是,不管是支付成功,还是退出支付, ...

  8. 移动网页支付(微信H5支付和支付宝网页支付)

    支付宝网页支付: 1.前端发送(流水号,手机号,产品ID,金额,回调地址,取消地址,支付类型)支付信息给后端, 2.后端组装数据,通过SDK向支付宝发起请求,返回数据给前端. let loc =&qu ...

  9. python支付程序源码_python项目中实现支付宝网页支付

    支付流程 在一次项目中需要引入支付宝接口实现支付宝支付,使用场景如下: 用户在我方商户系统中选择了购买商品,我方商户系统生成一张支付订单,用户点击订单的支付按钮后,页面会跳转到一个支付二维码的界面. ...

  10. 秀儿!用SSM框架实现了支付宝的支付功能,神操作啊

    作者:OUYANGSIHAI 来源:https://urlify.cn/aYrmIr 前言 本教程详细介绍了如何使用ssm框架实现支付宝支付功能.本文章分为两大部分,分别是「支付宝测试环境代码测试」和 ...

最新文章

  1. Android开发--List与ArrayList区别
  2. JDK8对并发的新支持
  3. keepalived 原理,安装,配置
  4. C++二维数组作为函数参数
  5. [LeetCode] 3. Longest Substring Without Repeating Characters 题解
  6. java程序能转变为javafx_躁!DJ 风格 Java 桌面音乐播放器
  7. webComponent初体验
  8. 【学习Spring框架】依赖注入和控制反转异同?
  9. 不用找,你想要的建筑 华丽 豪华3d材质贴图素材都在这里
  10. 桥牌笔记:机会最多的打法
  11. [vue-ts]ts版本问题合集
  12. Android7(N)中webview导致应用内语言切换失效
  13. 道格拉斯普克算法(简化线段点)
  14. xlsx表格怎么筛选重复数据_excel怎么筛选两个表中相同数据
  15. ReadLikeHumans: Autonomous,Bidirectional and Iterative Language Modeling for Scene Text Recognition
  16. java socket 读取文件_java中ServerSocket读取文件流不是分行读取
  17. 欢迎来到魔法的未来~
  18. Linux-vim编辑器
  19. Unity3d之表情动画--眨眼
  20. 推荐一款实用的用户画像工具--快鲸scrm

热门文章

  1. 服务器u单核性能排行,CPU单核性能天梯图2021 2021年最新CPU单核性能排行天梯图...
  2. ribbon的注解 @LoadBalanced 报错 No instances available for [IP]
  3. 利用pdfbox和itext包将pdf转换为图片
  4. ICE笔记(02):简单的ICE通信应用-Hello World
  5. ice php 5.6.32,PHP通过ice调用python程序
  6. DSP28377 I2C开发笔记
  7. ipa在线安装搭建_在线安装IPA 文件和视频下载
  8. 快速学习JasperReport-数据填充
  9. Ardunio开发实例-MLX90614红外测温仪
  10. android 多媒体封装格式详解---MKV