位置: 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装饰器如何保留原函数信息

  • 网易云音乐评论怎么抱抱别人(网易云音乐评论怎么删除)

    网易云音乐评论怎么抱抱别人(网易云音乐评论怎么删除)

  • 如何找回qq好友(如何找回qq好友发的文件)

    如何找回qq好友(如何找回qq好友发的文件)

  • 美图秀秀字体改不了(美图秀秀字体改不了加粗)

    美图秀秀字体改不了(美图秀秀字体改不了加粗)

  • 在word中对已经输入的文档怎么设置首字下沉(在word中,对文档的某些内容作注释)

    在word中对已经输入的文档怎么设置首字下沉(在word中,对文档的某些内容作注释)

  • 手机一直优化开不了机怎么办(手机一直优化开不了机,然后黑屏了)

    手机一直优化开不了机怎么办(手机一直优化开不了机,然后黑屏了)

  • 电脑上百分号怎么打(电脑上百分号怎么打出来)

    电脑上百分号怎么打(电脑上百分号怎么打出来)

  • mate一共几代(华为mate系列一共多少款手机)

    mate一共几代(华为mate系列一共多少款手机)

  • iqoo屏幕刷新率多少hz(iQOO屏幕刷新率选哪个好)

    iqoo屏幕刷新率多少hz(iQOO屏幕刷新率选哪个好)

  • 华为p20nfc感应区在哪(p20nfc感应区在哪里)

    华为p20nfc感应区在哪(p20nfc感应区在哪里)

  • cad一保存就致命错误怎么回事(cad一保存致命错误解决方法aec)

    cad一保存就致命错误怎么回事(cad一保存致命错误解决方法aec)

  • ba612是什么手机电池(bah是什么手机)

    ba612是什么手机电池(bah是什么手机)

  • 内存条32g和16g区别(内存条16g和32g可以一起用吗)

    内存条32g和16g区别(内存条16g和32g可以一起用吗)

  • flash怎样导出swf(flash怎么导出swf格式和fla格式)

    flash怎样导出swf(flash怎么导出swf格式和fla格式)

  • 快手为什么连不上麦(快手为什么连不上网能连数据)

    快手为什么连不上麦(快手为什么连不上网能连数据)

  • 手机ip地址多久变一次(手机ip地址准吗)

    手机ip地址多久变一次(手机ip地址准吗)

  • ios13照片流在哪里(苹果ios13的照片流在哪里)

    ios13照片流在哪里(苹果ios13的照片流在哪里)

  • 北斗定位终端怎么使用(北斗终端的操作使用方法)

    北斗定位终端怎么使用(北斗终端的操作使用方法)

  • ipadpro可以cad制图吗(ipadpro可以画cad)

    ipadpro可以cad制图吗(ipadpro可以画cad)

  • 猫眼电影迟到能取票吗(猫眼电影迟到能退票吗)

    猫眼电影迟到能取票吗(猫眼电影迟到能退票吗)

  • 华为nnbs啥软件(下载华为手机nfc应用)

    华为nnbs啥软件(下载华为手机nfc应用)

  • 三星s10屏幕旋转设置(三星s10自动转屏怎么关)

    三星s10屏幕旋转设置(三星s10自动转屏怎么关)

  • 华为p30黑屏(华为p30黑屏怎么强制关机)

    华为p30黑屏(华为p30黑屏怎么强制关机)

  • 音响插电脑哪个孔(音响插电脑哪个孔6个)

    音响插电脑哪个孔(音响插电脑哪个孔6个)

  • hd高清通话怎么关(hd高清通话怎么没有了)

    hd高清通话怎么关(hd高清通话怎么没有了)

  • Windows10系统如何禁用启动延迟(windows10 怎么样)

    Windows10系统如何禁用启动延迟(windows10 怎么样)

  • 施工企业的临时设施,属于企业的固定资产
  • 运输合同印花税税率
  • 耕地占用税减半政策
  • 保险公司车险理赔款如何入账
  • 物业管理费专票可以抵扣吗
  • 存货减值税务处理
  • 印花税按合同的多少收
  • 海关缴款书有效期多久
  • 城镇土地使用税的征税范围有哪些
  • 建筑企业建安税是多少
  • 保险柜库存现金留存不能超过多少
  • 未分配利润转增股本要交税吗
  • 非经营活动界定,主要说明哪些情形不交增值税
  • 服务性合同签了能反悔吗
  • 贸易公司购进原材料会计分录
  • 个人装卸费如何开票
  • 10万元以下免征教育费附加
  • 净资产增长率为正数说明什么
  • 公司投资股票要交什么税
  • 小规模开票后的分录怎么做
  • 分期收款方式怎么算消费税
  • 金蝶怎么一次性删除所有分录
  • w10电脑很卡
  • 个人银行卡作为公司备用金影响
  • 手机cpu性能天梯图排行榜
  • s24evmon.exe - s24evmon是什么进程 有什么用
  • Skype.exe - Skype是什么进程 有什么用
  • postman如何设置token
  • 二手房房屋买卖注意哪些问题
  • 贷款损失准备的作用
  • 克鲁格国家公园大雄狮视频大全
  • php session_start
  • 工资零申报3个月后不能申报了吗
  • bootstrap框架的理解
  • webpack性能优化 加载
  • 投资房地产的后续计量有哪些
  • 仓库发货打包以及建议年终总结
  • 处置固定资产清理费用影响利润吗
  • 固定资产加速折旧是什么意思
  • mongodb索引使用正则表达式
  • mongodb基本操作
  • SQL Server FileStream详解
  • 税务局季度报表利润表
  • sqlserver 恢复数据库
  • 水利基金差额征收有哪些类型
  • 电脑计入固定资产了怎么抵企业所得税
  • 跨月的凭证出错如何处理
  • 母公司无偿借款给子公司
  • 工资算营业成本还是管理费用
  • 让渡资产使用权收入属于收入吗
  • 印花税退还
  • 研发费用范围不包括
  • 金税盘抄报税这是怎么个流程
  • 短期借款核算的会计分录
  • 餐饮食材成本高怎么形容
  • 数据结构 简书
  • window怎么升级系统
  • 提高搜索引擎检索效果的方法
  • win7系统开机黑屏
  • xp事件管理器
  • centos7 修复
  • linux系统启动步骤
  • sks文件是什么
  • windows10磁盘100%占用解决
  • win8.1系统升级
  • android内存优化面试
  • node.js实战
  • cmd读取d盘
  • 网站检测系统
  • JavaScript中的NaN代表什么
  • jquery中如何获取元素?
  • node.jsexpress
  • Python3.6正式版新特性预览
  • javascript Slip.js实现整屏滑动的手机网页
  • 使用jQuery制作动画与特效及插件的应用
  • 哪个机场离东莞樟木头最近
  • 河南的省直
  • 内蒙古自治区耕地保养条例
  • 外省车险保单,有何不利的事
  • 税控盘可以申请电子发票吗?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设