接入前把准备工作做好

接入准备 | 网页&移动应用支付宝文档中心https://opendocs.alipay.com/open/203/107084

  1. ​创建应用
  2. 添加功能,手机网站支付
  3. 开发设置:ip白名单,应用网关(http://ip:端口),回调地址:完整回调地址http://ip:端口/路径,有域名和子域名做对应替换就行
  4. 参数准备,选择普通公钥模式,然后照着搞

接口加签方式 | 开放平台支付宝文档中心https://opendocs.alipay.com/common/02mriz

  • 应用id
  • 支付宝公钥
  • 应用私钥
  • 应用公钥

jar依赖

       <dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>4.4.2.ALL</version></dependency><dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-easysdk</artifactId><version>2.1.0</version></dependency>
@Slf4j
public class AliPay {private static String quitUrl = "取消支付跳转地址";//这里是支付宝公钥,不是应用公钥//这里是支付宝公钥,不是应用公钥//这里是支付宝公钥,不是应用公钥,总要的事情说三遍,否则回调验签不通过private static final String alipaypublicKey = "支付宝公钥";private static String returnUrl = "支付完成跳转地址";private static Config getOptions() {/** 初始化 **/Config config = new Config();/** 通信协议 **/config.protocol = "https";/** 支付宝网关 **/config.gatewayHost = "openapi.alipay.com";/** 设置签名类型 **/config.signType = "RSA2";config.appId = "你的应用id";//应用私钥,公钥获取参考官网config.merchantPrivateKey = "应用私钥,直接粘贴密钥字符串";config.alipayPublicKey = "应用公钥";config.notifyUrl = "你服务器接收支付结果的地址,post";return config;}/*** @param subject    商品名称* @param orderNuber 商户订单号,商户自定义,需保证在商户端不重复144857ddw887ew112234* @param price      订单金额,精确到小数点后两位* @return*/public static String createOrder() {/**  设置参数(全局只需设置一次) **/Factory.setOptions(getOptions());String payForm;try {//构建商品信息List<Object> goodsDetailList = new ArrayList<>();Map<String, Object> goodsDetail = new HashMap<>();goodsDetailList.add(goodsDetail);Date date = new Date();date.setTime(date.getTime() + 15 * 60 * 1000);SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String time = format.format(date);AlipayTradeWapPayResponse response = Factory.Payment.Wap().pay("商品名称", "订单号", "订单金额",quitUrl, returnUrl);//返回拉起支付宝的页面代码,form表单payForm = response.getBody();} catch (Exception e) {throw new RuntimeException(e.getMessage(), e);}return payForm;}/*** 支付结果通知* 接口接收HttpServletRequest request 调用此方法进行验签* @param request* @return* @throws Exception*/public static String callBack(HttpServletRequest request) throws Exception {request.setCharacterEncoding("UTF-8");Map<String,String> params = new HashMap<String,String>();Map requestParams = request.getParameterMap();for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {String name = (String) iter.next();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] + ",";}params.put(name, valueStr);}//商户订单号,下单时传入的订单好String out_trade_no = new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"),"UTF-8");//交易状态String trade_status = new String(request.getParameter("trade_status").getBytes("ISO-8859-1"),"UTF-8");//计算得出通知验证结果//alipaypublicKey支付宝公钥,不是应该公钥boolean verify_result = AlipaySignature.rsaCheckV1(params, alipaypublicKey, "UTF-8", "RSA2");if (verify_result) {//商户订单号//支付成功,返回订单号(入账业务需要其它参数,自行获取组装)if (trade_status.equals("TRADE_SUCCESS")) {return out_trade_no;}}return null;}
}

java对接支付宝网页h5支付相关推荐

  1. java对接支付宝小程序支付

    今天晚上12点部署生产项目,又是个不眠夜. 之前整的好多东西都忘光了,还是记录下来吧. 跟对接支付宝支付差不多,地址:小程序支付能力介绍 | 小程序 开通流程: 1.先要去支付宝开放平台,创建小程序. ...

  2. java对接支付宝当面付支付和查询

    最近看到很多人想用java写支付宝的收款功能用来做网站支付, 个人感觉网站支付的话支付宝的当面付功能算是有简单又实用的 当面付功能只需要实现他的两个接口就可以完成网站的支付和结果校验 1.支付宝的预创 ...

  3. JAVA对接支付宝,实现支付功能

    网站对接支付宝支付 沙盒开通 支付宝给我们提供了支付宝支付沙盒 供测试 注册沙盒可以自行 百度开通 这里不过多介绍 对接支付宝主要流程 我们在我们订单支付时给支付宝发送一个创建订单请求 在创建订单时创 ...

  4. php 对接支付宝 手机H5支付

    composer 社区 安装alipaysdk public function getOptions(){$options = new Config();$options->protocol = ...

  5. APP内嵌网页使用微信或支付宝的H5支付

    如何绕过微信或支付宝的H5支付的拦截验证?下面我们从本质上来说明该如何解决这个问题. 微信和支付宝的H5支付下单成功后都会返回一个跳转支付的url连接,通过这个连接可以拉起微信或支付宝进行支付操作. ...

  6. java对接支付宝支付

    java对接支付宝支付演示 现在有不少的项目都需要对接支付,这里主要是进行讲解对接支付宝H5支付 废话不多说 上代码 引入支付宝官方的sdk <!-- https://mvnrepository ...

  7. JAVA对接支付宝支付(超详细,一看就懂)

    Java对接支付宝支付 更多内容 冷文博客: 传送门 引入 为什么要发这篇帖子呢?原因很简单,就是因为在一个稍稍正规一点的应用上都会有支付这个环节,我们日常的在线支付如今包括支付宝,微信钱包,QQ钱包 ...

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

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

  9. java对接支付宝支付(手机网站支付)

    记录一下对接支付宝支付的过程,既是对这段时间工作的总结,也希望能对之后需要对接支付宝手机网站支付的小伙伴一点帮助. 1.查看官方文档,具体对接流程(https://docs.open.alipay.c ...

  10. 关于JAVA对接支付宝开发文档错误总结

    如果在对接支付宝官方文档时出现该错误,解决的方法是:检查是否与支付宝进行签约,如果签约后出现以下错误: 解决方法是检查支付宝的公钥与私钥是否与商户id对应,对于java对接支付宝,生成的密钥密钥长度为 ...

最新文章

  1. DLL version issue and SQL Parameters Issue
  2. MongoDB 数据库、集合创建删除与文档插入
  3. 12_Android中HttpClient的应用,doGet,doPost,doHttpClientGet,doHttpClient请求,另外借助第三方框架实现网络连接的应用,
  4. Android 亮屏速度分析
  5. Linux下environ环境变量操作函数
  6. html(+css)/01/html语言基础,标记,标记语法,html文档结构
  7. 穿透、击穿、雪崩…Redis这么多问题,如何解决
  8. Android图片完整性检验,Android安全测试之应用完整性校验检测
  9. Ubuntu18.04解决sudo执行慢的问题
  10. sql server代理无法启动_DungProxy代理资源服务系统,
  11. 这本书,值2000亿!
  12. C#中使用Dictionary实现Map数据结构
  13. IBM Systems Director VMControl资源生命周期管理,第2部分
  14. Java操作excel自动生成水印背景
  15. Maven清除lastUpdated文件
  16. 制作属于自己的QQ机器人,超详细
  17. AE开发中“无法嵌入互操作类型*****,请改用适用的接口”解决办法
  18. java 表达式短路_什么是短路?在Java中进行编程时如何使用短路?
  19. 《有效成交量分析法》(威廉•帕斯卡尔)一、有效成交量概念的提出
  20. 火星坐标与地球坐标之间的相互转换的工具类

热门文章

  1. 非北京户口的驾照到期换证小攻略(仅供参考)
  2. 95%以上的日常办事启用电子签章,你都体验过哪些?
  3. LabVIEW开发气体调节器
  4. 苦难是人生中必须经历的一课
  5. 能源之星评级对数据中心IT设备的影响
  6. 超声波测距模块工作原理
  7. [4G+5G专题-132]: 传输层 - 以太网电缆的类型(Cat5,Cat5e,Cat6,Cat6a)
  8. 《大学“电路分析基础”课程实验合集.实验一》丨元器件的检测及万用表的使用
  9. c语言total用法,C语言 这个表达式怎么理解 新手请大神详述total += isalnum(ch[i])!=0;...
  10. 魔客吧php登录界面模板,精仿魔客吧网站模板discuz模板_带VIP购买等多个插件