位置: IT常识 - 正文

支付宝沙箱服务 (结合springboot实现,这里对接的是easy版本,工具用的是IDEA,WebStrom)(沙箱支付宝app正式版)

编辑:rootadmin
一:打开支付宝开发平台,登录,然后点击控制台 https://open.alipay.com/ 二:滚动到底部,选着沙箱服务 三:获取到对接要用的appId和公钥私钥 四:打开IDEA导入所需的xml文件 <!-- 支付宝--> <!-- https://mvnrepository.com/arti ...

推荐整理分享支付宝沙箱服务 (结合springboot实现,这里对接的是easy版本,工具用的是IDEA,WebStrom)(沙箱支付宝app正式版),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:支付宝沙箱服务怎么开启,支付宝沙箱下载官网,支付宝沙箱环境详细讲解,支付宝沙箱环境详细讲解,支付宝沙箱支付教程个人测试,支付宝沙箱服务怎么开启,支付宝沙箱服务怎么开启,支付宝沙箱服务怎么关闭,内容如对您有帮助,希望把文章链接给更多的朋友!

一:打开支付宝开发平台,登录,然后点击控制台

https://open.alipay.com/

二:滚动到底部,选着沙箱服务

三:获取到对接要用的appId和公钥私钥

支付宝沙箱服务 (结合springboot实现,这里对接的是easy版本,工具用的是IDEA,WebStrom)(沙箱支付宝app正式版)

四:打开IDEA导入所需的xml文件

<!-- 支付宝--> <!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-easysdk --> <dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-easysdk</artifactId> <version>2.2.0</version> </dependency>

五:编写实体类:

import lombok.Data;@Datapublic class Alipay { private String traceNo; private String totalAmount; private String subject; private String alipayTraceNo;}

六:编写yaml文件(这里的回调要用网络https服务,这里建议使用花生壳可以完成域名访问!)

#支付宝配置alipay: appId: ? #私钥 appPrivateKey: ? #公钥 alipayPublicKey: ? #回调地址 notifyUrl: ?

七:编写服务类:

import com.alipay.easysdk.factory.Factory;import com.alipay.easysdk.kernel.Config;import lombok.Data;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;import javax.annotation.PostConstruct;@Data@Component@ConfigurationProperties(prefix = "alipay")public class AplipayConfig { private String appId; private String appPrivateKey; private String alipayPublicKey; private String notifyUrl; @PostConstruct public void init() { // 设置参数(全局只需设置一次) Config config = new Config(); config.protocol = "https"; config.gatewayHost = "openapi.alipaydev.com"; config.signType = "RSA2"; config.appId = this.appId; config.merchantPrivateKey = this.appPrivateKey; config.alipayPublicKey = this.alipayPublicKey; config.notifyUrl = this.notifyUrl; Factory.setOptions(config); System.out.println("=======支付宝SDK初始化成功======="); }}

八:编写控制器(写完控制器建议直接测试访问看看可不可以访问的到,链接在第九步)

import com.alipay.easysdk.factory.Factory;import com.alipay.easysdk.payment.page.models.AlipayTradePagePayResponse;import com.rookie.sixthbackstage.entity.Alipay;import com.rookie.sixthbackstage.entity.OrderItem;import com.rookie.sixthbackstage.mapper.OrderItemMapper;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;import java.net.URLEncoder;import java.util.HashMap;import java.util.Map;@RestController@RequestMapping("/alipay")public class AliPayController { @Autowired OrderItemMapper orderItemMapper; @GetMapping("/alipay") // &subject=xxx&traceNo=xxx&totalAmount=xxx public String pay(Alipay aliPay) { AlipayTradePagePayResponse response; try { // 发起API调用(以创建当面付收款二维码为例) response = Factory.Payment.Page() .pay(URLEncoder.encode(aliPay.getSubject(), "UTF-8"), aliPay.getTraceNo(), aliPay.getTotalAmount(), "《这里放支付成功的地址!》"); } catch (Exception e) { System.err.println("调用遭遇异常,原因:" + e.getMessage()); throw new RuntimeException(e.getMessage(), e); } return response.getBody(); } @PostMapping("/notify") // 注意这里必须是POST接口 public String payNotify(HttpServletRequest request) throws Exception { if (request.getParameter("trade_status").equals("TRADE_SUCCESS")) { System.out.println("=========支付宝异步回调========"); Map<String, String> params = new HashMap<>(); Map<String, String[]> requestParams = request.getParameterMap(); for (String name : requestParams.keySet()) { params.put(name, request.getParameter(name)); // System.out.println(name + " = " + request.getParameter(name)); } int tradeNo = Integer.parseInt(params.get("out_trade_no")); String gmtPayment = params.get("gmt_payment"); String alipayTradeNo = params.get("trade_no"); double pay_price= Double.parseDouble(params.get("buyer_pay_amount")); // 支付宝验签 if (Factory.Payment.Common().verifyNotify(params)) { // 验签通过 System.out.println("交易名称: " + params.get("subject")); System.out.println("交易状态: " + params.get("trade_status")); System.out.println("支付宝交易凭证号: " + params.get("trade_no")); System.out.println("商户订单号: " + params.get("out_trade_no")); System.out.println("交易金额: " + params.get("total_amount")); System.out.println("买家在支付宝唯一id: " + params.get("buyer_id")); System.out.println("买家付款时间: " + params.get("gmt_payment")); System.out.println("买家付款金额: " + params.get("buyer_pay_amount")); // 支付成功后,修改自己的订单状态,这里的方法是我自己写的,根据自己实际情况来做更改 OrderItem orderItem=new OrderItem(0,tradeNo,0,pay_price,gmtPayment,"","已支付"); orderItemMapper.updateOrderItemById(orderItem); } } return "success"; }}

九:前端测试

//http://localhost:8089/alipay/alipay?subject=asdflas&traceNo=123123&totalAmount=29999//链接,复制到浏览器试试看可不可以打开支付宝的页面 //http://localhost:8089/alipay/alipay/asdflas/123123/29999//传数据,名称,订单号,价格,更多参数请参考官网的文档!//结账按钮绑定的方法 gopay() { var url = localhost + "/alipay/alipay?subject=" + subject + "&traceNo=" + traceNo + "&totalAmount=" + totalAmount; location.href = url; },

十:结果

十一:想要扫码支付的要下载沙箱的支付宝,账号密码的话在沙箱账号里,也是沙箱支付宝的登录账号!

本文链接地址:https://www.jiuchutong.com/zhishi/310951.html 转载请保留说明!

上一篇:为织梦dede:likearticle添加start channelid orderby等参数的方法(织梦作坊的微博)

下一篇:python装饰器如何保留原函数信息

  • 华为nova7pro的屏幕是曲面屏的吗(华为nova7pro的屏幕刷新率)

    华为nova7pro的屏幕是曲面屏的吗(华为nova7pro的屏幕刷新率)

  • 华为手机的hd怎么关掉(华为手机的hd怎么关闭)

    华为手机的hd怎么关掉(华为手机的hd怎么关闭)

  • 苹果xsmax电量显示百分比在哪里(苹果xsmax电量显示百分比在哪里找)

    苹果xsmax电量显示百分比在哪里(苹果xsmax电量显示百分比在哪里找)

  • iphone7p ios13发烫解决办法(iphone7 13.5.1发烫)

    iphone7p ios13发烫解决办法(iphone7 13.5.1发烫)

  • 手机充不进电怎么办(手机充不进电怎么回事儿)

    手机充不进电怎么办(手机充不进电怎么回事儿)

  • 苹果手机相册时间错乱(苹果手机相册时间限额怎么取消)

    苹果手机相册时间错乱(苹果手机相册时间限额怎么取消)

  • 苹果x背面有一串英文(苹果x背面有一条黑线)

    苹果x背面有一串英文(苹果x背面有一条黑线)

  • boss直聘如何隐藏个人信息(boss直聘如何隐藏自己的简历)

    boss直聘如何隐藏个人信息(boss直聘如何隐藏自己的简历)

  • 荣耀9x怎么样开启呼吸灯(荣耀9x怎么样开小窗口)

    荣耀9x怎么样开启呼吸灯(荣耀9x怎么样开小窗口)

  • 电脑怎么设置软件安在D盘(电脑怎么设置软件安装默认D盘?)

    电脑怎么设置软件安在D盘(电脑怎么设置软件安装默认D盘?)

  • s20与s20+区别(s20跟s20+区别)

    s20与s20+区别(s20跟s20+区别)

  • 手机的演示机是什么意思(手机是演示机能用吗)

    手机的演示机是什么意思(手机是演示机能用吗)

  • ipad4相册怎么删除(苹果ipad相册怎么删除)

    ipad4相册怎么删除(苹果ipad相册怎么删除)

  • 电话手表sim卡怎么装(电话手表电话卡)

    电话手表sim卡怎么装(电话手表电话卡)

  • 屏幕使用时间密码可以输多少次(屏幕使用时间密码忘记怎么办苹果)

    屏幕使用时间密码可以输多少次(屏幕使用时间密码忘记怎么办苹果)

  • 探探解除匹配有聊天记录吗(探探上解除匹配对方是不是就找不到你了)

    探探解除匹配有聊天记录吗(探探上解除匹配对方是不是就找不到你了)

  • airpods支持pd18w吗(airpods可以用18w的充电器吗)

    airpods支持pd18w吗(airpods可以用18w的充电器吗)

  • 小米手环4比3多哪些功能(小米手环4跟3的区别)

    小米手环4比3多哪些功能(小米手环4跟3的区别)

  • 迅雷u享版是啥(迅雷u享版和迅雷极速版)

    迅雷u享版是啥(迅雷u享版和迅雷极速版)

  • system boost是病毒吗(system病毒怎么清理)

    system boost是病毒吗(system病毒怎么清理)

  • 钉钉oa系统收费吗(钉钉办公软件收费的功能是哪些)

    钉钉oa系统收费吗(钉钉办公软件收费的功能是哪些)

  • 迅雷敏感无法加速怎么办

    迅雷敏感无法加速怎么办

  • fatal error: opencv/cv.h: 没有那个文件或目录 错误;fatal error: opencv2/contrib/contrib.hpp: 没有那个文件或目录,opencv多版本

    fatal error: opencv/cv.h: 没有那个文件或目录 错误;fatal error: opencv2/contrib/contrib.hpp: 没有那个文件或目录,opencv多版本

  • java使用同步的注意点(java中同步有两种方法)

    java使用同步的注意点(java中同步有两种方法)

  • phpcms v9无法上传缩略图怎么办(php.ini上传限制)

    phpcms v9无法上传缩略图怎么办(php.ini上传限制)

  • 政府补助利得要交企业所得税吗怎么算
  • 代扣个人所得税怎么算
  • 支付给职工以及为职工支付的现金包括哪些
  • 增值税普通
  • 垫付生育津贴的钱怎么算
  • 收到进项发票是什么凭证
  • 进销存账需要合并吗
  • 专用发票抵扣联丢失还能抵扣吗
  • 企业防伪税控维护方案
  • 低值易耗品残料有哪些
  • 季度预缴所得税可以不交吗
  • 公司冲账发票做不够该如何处理合适?
  • 减少注册资本弥补亏损的依据
  • 餐饮管理公司设哪些科目
  • 土地使用权摊销的会计分录
  • 大型医用设备维修效益成本分析 课件ppt
  • 购买的车位应如果要进行税务处理需注意什么?
  • 个人捐赠如何抵扣个税30%
  • 建筑施工企业购进材料会计分录
  • 防伪税控开票系统SOAP服务端
  • 原始凭证谁负责
  • 发票抵扣后对方恶意冲红
  • 活动策划费开票在哪个项目下面
  • 营业外收入有哪些情况
  • 企业未成立工会需要交工会经费吗
  • 小规模可以接收专票吗现在
  • 出口退税函调是什么意思
  • 苹果手机查看激活id账号信息
  • 计提本月短期借款利息1000元
  • 成本核算核算要素有哪些
  • Win10 Build 18363.1350/17763.1728累积更新补丁KB4598298正式推送
  • 扶贫入股分红政策
  • 超支福利费按什么计提
  • fpp是什么文件
  • uniapp支付流程
  • 企业租用个人房屋
  • 柏林亚历山大广场1980
  • php获取访问者mac地址
  • 新政府会计制度固定资产核算
  • python标准库在哪个目录
  • 嵌入式开关安装效果图
  • 浅析Laravel5中队列的配置及使用
  • 发票跨月发现开错该怎么办?
  • 已抵扣发票在什么地方查
  • 成本费用利润率越高越好吗
  • 经营许可证需要多久时间
  • 原始凭证的种类划分
  • 企业微信开通微信支付
  • 残疾人就业保障金是什么意思啊
  • 材料暂估入库需要什么原始凭证
  • 检测费用的会计分录
  • 赞助费入账需要多久
  • 结账没有原始凭证
  • 应付账款用什么方法清查
  • Advanced Pagination for MySQL(mysql高级分页)
  • macos怎么使用
  • 在windows 10
  • eudcedit.exe
  • win版本微信
  • win7系统为什么玩不了游戏
  • centos ftp上传文件
  • Win10预览版桌面图标和任务栏不翼而飞怎么办?
  • cocos2dx 教程
  • 菜单按钮是什么
  • Extjs4中的分页应用结合前后台
  • bash 数值比较
  • vbs编辑
  • node.js使用的v8引擎是由哪个公司开发的
  • autorun病毒怎么清理
  • vue router 组件
  • unity3d怎样导入资源
  • jQuery提示插件qTip2用法分析(支持ajax及多种样式)
  • js如何保留一位小数
  • 税务软件服务商
  • 税务管理职责
  • 吉林省耕地占用税实施办法
  • 不明身份人员法律定义?
  • 货车附加费多少钱
  • 车辆购置税计入固定资产一起折旧吗
  • 税务培训主题
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设