目前,市面上比较流行的支付方式有支付宝支付,微信支付,银联支付,其他聚合支付等,支付市场发展到目前,算是比较稳定和成熟了,有了这么多支付方式,不论是web端还是移动端,需要支付的场景很多,今天来简单模拟一下使用较多的支付宝支付。

由于条件限制,个人无法提供工商营业执照,因此无法在支付宝官方平台注册企业开发用户,好在支付宝开发者平台提供了沙箱环境,可为个人开发者提供一套和真实环境差不多的沙箱模式,开发者可以基于沙箱模式进行注册,并做简单的配置即可模拟调用支付宝相关的接口,比如像下单等。

使用个人的支付宝账户登录阿里开放平台,进入开发者中心,点击研发服务,进入沙箱环境,


在沙箱这个页面上,可以看到系统为你默认分配的APPID,这个是你在程序中配置支付参数时需要填写的,

接着配置应用公钥,这个是你在调用支付宝接口的时候,支付宝那边认证的很重要的凭证,如何获取这个公钥呢,在签名专区那一栏里面有具体的使用流程,下载zip工具包到本地后,双击.bat那个文件,将生成的公钥和私钥保存一份到本地,然后复制公钥粘贴到应用公钥那一处保存即可,

上述配置完毕后,如果条件允许最好下载一下下面这个沙箱环境的支付宝APP,方便后面测试使用,当然不配置也是可以的,

如果不配置的话,支付的时候直接使用平台分配的测试用户名和密码也是可以的,

配置部分到这里基本结束,真实环境下要麻烦点,需要上传工商营业执照,填写手机号、身份证之类的信息,这里就不细说了,

下面,我们直接将官方的demo下载到本地,通过运行这个demo工程来模拟一下支付的流程,在下面的位置下载java版的demo,

放到本地的工程,如图所示,官方的demo还是一个比较传统的web项目,需要tomcat启动,

通过查看代码知道,demo中的和支付相关的代码都是放在jsp中进行处理的,各个jsp的作用基本上建见名知意,实际项目中我们一般不会这么做,我们首先修改一下AlipayConfig这个类,这个类里面的部分参数就是我们在沙箱配置中的那些参数,主要的几个参数如下,

这里面有两个参数需要重点说一下就是return_url和notify_url,就是订单支付完毕之后,支付宝跳转到商家页面的回调地址,真实项目中需要填写你的公司域名,这样支付宝才能找到,但我并没有备案过的域名怎么办?

这里推荐两个小工具,可以进行内网穿透,natapp 或者ngrock,这也是平时做微信开发或者支付宝开发模拟调试的时候使用的两个小工具,我这里使用的是natapp ,关于natapp 的用法我简单书哟一下,方便大家使用,进入natapp 官网,下载natapp 压缩包,解压到本地,

注册一个账户后,点击购买隧道,填写相关的信息即可,由于是测试使用免费的即可,

隧道应用信息填写完毕后,会随机为你分配一个authtoken和一个域名,这个域名待会儿你在执行本地的那个.exe文件时可以看到,


最重要的就是下面的这个地方,即通过配置的域名要映射到你本地的那个IP和端口下,

然后我们双击natapp.exe,看到如下信息说明映射成功了,

然后我们将这个地址填写到配置类中的return_url和notify_url中即可,

public static String notify_url = “http://5c7dxs.natappfree.cc/notify_url”;

public static String return_url = “http://5c7dxs.natappfree.cc/return_url”;

启动支付demo应用,
访问:http://localhost:8080/demo_pay/

在我们进行支付订单模拟之前,为了验证整个流程,还准备了另一个工程,用于支付成功之后的回调,非常简单,里面只有两个接口,模拟回调使用的,

贴上orderController代码,

@Controller
public class OrderController {@RequestMapping("/notify_url")public void getNotifyInfo() {System.out.println("notify_url  回调成功1 .......");}@RequestMapping("/return_url")public void getReturnInfo(HttpServletRequest request,HttpServletResponse response) throws Exception{System.out.println("----------------------------notify_url------------------------");// 商户订单号String out_trade_no = new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"),"UTF-8");//付款金额,必填String total_amount = new String(request.getParameter("WIDtotal_amount").getBytes("ISO-8859-1"),"UTF-8");//支付宝交易号String trade_no = new String(request.getParameter("trade_no").getBytes("ISO-8859-1"),"UTF-8");//交易状态String trade_status = new String(request.getParameter("trade_status").getBytes("ISO-8859-1"),"UTF-8");System.out.println("商户订单号:" + out_trade_no);System.out.println("付款金额:" + total_amount);System.out.println("支付宝交易号:" + trade_no);System.out.println("交易状态:" + trade_status);if(trade_status.equals("TRADE_SUCCESS")){System.out.println("交易成功,进行其他业务逻辑处理........");}}}

将这个应用也启动一下,紧接着上面的流程,我们测试进行一笔订单支付,点击付款,

跳转到支付页面,使用自己下载的沙箱支付宝APP扫码确认一下,或者使用登录用户密码也可,

如果是APP确认的就直接进入后面的回调流程了,我这里输入用户名和密码,如下图,点击下一步,


确认付款,


等待支付成功后,稍等一会儿,跳转到我们的回调地址上了,可以看到,控制台上成功获取到了刚刚支付订单的相关信息,当然,接下去还可以做其他的业务逻辑处理,例如订单入库,积分添加,优惠券业务操作等

基本上到这里就模拟了沙箱环境下使用支付宝接口进行下单的整个完整流程,当然其他的像查询订单接口,退款,对账接口等,都可以在获取了订单号之后继续进行操作和模拟,这里限于篇幅就不再继续模拟了,有兴趣的伙伴可以深入研究下。

需要源码的伙伴可自行下载,附上下载地址:
https://download.csdn.net/download/zhangcongyi420/15403352

本篇到此结束,最后感谢观看!

支付宝沙箱环境下模拟下单流程相关推荐

  1. 支付宝沙箱环境下支付接口的错误

    背景 笔者使用alipay-sdk-PHP-4.9.1调试沙箱环境下的支付宝支付接口时,发现同步通知的验签总是失败,按照官方说明的检查清单做了排查,仍然不能解决. 进入官方的钉钉圈子,咨询后,也没有解 ...

  2. 沙箱环境下实现支付宝网站支付

    沙箱环境下实现支付宝网站支付 前言 前期准备 1.沙箱环境配置 2.创建SpringBoot项目,导入相关依赖 3.创建沙箱环境配置文件 4.商品列表页面编写 5. 编写checked.html 7. ...

  3. 支付宝沙箱环境+SpringBoot+内网穿透整合开发

    目录 1.查看沙箱账号 2.内网穿透 3.沙箱环境整合SpringBoot开发 下面我将以实际案例详细介绍如何使用沙箱环境进行支付宝支付对接的开发 1.查看沙箱账号 首先什么是沙箱账号? 沙箱账号是指 ...

  4. 支付宝沙箱环境demo测试

    1.获取电脑网站支付的SDK代码 ①下载代码 具体下载地址:https://docs.open.alipay.com/270/106291/ ②介绍具体的代码中文件 ③具体同步回调跟异步回调 同步回调 ...

  5. 支付宝沙箱环境对接(当面付)

    支付宝沙箱环境对接(当面付) 第一步: 好好阅读以下的文档: 沙箱登录:https://openhome.alipay.com/platform/appDaily.htm 沙箱环境使用说明:https ...

  6. Vue对接支付宝沙箱环境

    文章目录 前言 一.支付宝沙箱环境是什么? 二.安装所需要的环境 1.引入环境以及工具 2.安装Express框架 3.对接支付宝沙箱环境 总结 前言 此文章仅供学习参考,这里我们对接的环境是Vue. ...

  7. android 支付宝沙箱测试环境,Android支付宝沙箱环境使用教程

    Android支付宝沙箱环境使用教程 网上好多支付宝教程,但是好像没看到支付宝沙箱环境的使用教程,尤其是在做Android支付宝测试的时候,沙箱拿来测试挺好的,正式使用的时候更换里面的个别数据就可以了 ...

  8. 支付宝沙箱环境接口使用详解

    最近在做一个模拟支付宝的支付功能,用到了支付宝沙箱模拟环境,具体使用步骤如下,仅供参考: 一.注册支付宝沙箱环境账号 1.既然使用人家提供的东西,必须要注册一个他家的账号,使用万能的百度找到支付宝沙箱 ...

  9. 支付宝沙箱环境 电脑支付

    项目场景: java语言,jdk1.8也可以使用 .支付宝沙箱环境电脑支付. 电脑端生成二维码,手机端扫描支付 AlipayConfig: APP 中接收数据代码: package com.hc;/* ...

最新文章

  1. mysql基础(一) 编译安装mysql5.5
  2. java多线程编程_Java多线程编程实战指南+设计模式篇.pdf
  3. ps cs6磨皮插件_【PS插件】ps磨皮插件Portraiture
  4. 看动画学算法之:排序-count排序
  5. 前端学习(305):bootstrap4之工具方法
  6. 关键2招提升软件开发项目的利润
  7. 基于Verilog实现呼吸灯
  8. oracle11g 卸载步骤
  9. Linux内核入门(五)——必要的硬件知识
  10. 探索:区块链视频流媒体平台
  11. 2021年中国生育保险参保人数及待遇情况分析:广东省参保人数、享受生育保险待遇人次均居全国首位[图]
  12. 正二十面体制作步骤介绍
  13. 去空格函数trim-C语言
  14. 日子计算(结构+函数)
  15. 用场景应用™玩转#冰桶挑战#
  16. Android 调用微信添加关注
  17. 软考高级-系统架构师-案例分析-数据库真题考点汇总
  18. Java中getBytes()方法--使用详解
  19. 微信点餐小程序(外卖配送)解决方案
  20. 云游戏学习与实践(一)——云游戏概述

热门文章

  1. [导入]ExtJs 2.0 公司工程化应用的最佳实践(二)
  2. Copy Clone
  3. SDS趋势之二:对象存储将替代文件存储
  4. FPGA设计——CMOS摄像与HDMI显示(DVP版)
  5. mysql千万级数据量根据索引优化查询速度
  6. hdu1535 Invitation Cards 最短路
  7. web前端的渐进增强式开发模型
  8. PostgreSQL代码分析,查询优化部分,canonicalize_qual
  9. 超声和免疫学指标的特征能否反映RA临床缓解的表型?[EULAR2015_THU0121]
  10. 控制抽象之简化客户代码