准备

进入支付宝开放平台

进入支付宝开放平台,登录。
下拉,点击研发服务

进入开发者中心,红框对应支付宝跟你分配的APPID

因为是商家,支付宝要求进行支付操作时,你要调用支付宝的接口,支付宝也要调用你的接口,所以需要使用非对称加密。
若是刚开始操作,RSA2哪里只有设置,没有查看,需要点击设置,在下图中的框中输入利用支付宝密钥生成器生成的公钥,

私钥/公钥的生成

生成器,点击下载,安装,打开软件进入生成器,直接点击生成密钥,就会在下方得到生成好的公钥和私钥。

将公钥复制,进入支付宝开发平台的那个页面,将公钥粘贴到框内,点击保存设置,得到如下内容,就拿到了支付宝公钥。

NATAPP

这个东西还没怎么理解。。。应该是在你没有域名的情况下,通过natapp得到一个临时域名对应你的主机,进入官网,登录点击下方红框。

直接点击购买就行,当然也可以自己命个名。

点击下图左方蓝色区域,得到如下图片内容。

然后点击页面右上角的客户端下载,选择自己机型对应的型号,我的是windows 64下载即可,为一个.exe文件。然后需要在该exe的同级目录下创建一个config.ini文件。官方有详细说明

官方给出的config.ini内容如下

#将本文件放置于natapp同级目录 程序将读取 [default] 段
#在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
#命令行参数 -config= 可以指定任意config.ini文件
[default]
authtoken=                      #对应一条隧道的authtoken
clienttoken=                    #对应客户端的clienttoken,将会忽略authtoken,若无请留空,
log=none                        #log 日志文件,可指定本地文件, none=不做记录,stdout=直接屏幕输出 ,默认为none
loglevel=ERROR                  #日志等级 DEBUG, INFO, WARNING, ERROR 默认为 DEBUG
http_proxy=                     #代理设置 如 http://10.123.10.10:3128 非代理上网用户请务必留空

我们需要配置的就是将之前得到的authtoken序列,填进该文件。比如可将文件修改为

#将本文件放置于natapp同级目录 程序将读取 [default] 段
#在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
#命令行参数 -config= 可以指定任意config.ini文件
[default]
authtoken=  自己得到的autotoken序列                    #对应一条隧道的authtoken
clienttoken=                    #对应客户端的clienttoken,将会忽略authtoken,若无请留空,
log=stdout                        #log 日志文件,可指定本地文件, none=不做记录,stdout=直接屏幕输出 ,默认为none
loglevel=DEBUG                  #日志等级 DEBUG, INFO, WARNING, ERROR 默认为 DEBUG
http_proxy=                     #代理设置 如 http://10.123.10.10:3128 非代理上网用户请务必留空

将文件保存,注意是在同级目录

直接点击natapp.exe运行,得到如下图,注意红框中的url为每次启动该exe给你生成的url,后面需要使用。到这里对于临时域名的获取就暂时告一段落,注意要使该域名有效,应一直开启natapp,不要把它关闭了。

IDEA进行Demo测试

进入支付宝开发平台的文档,电脑网站支付Demo我下载的是java。

因为支付宝给出的是eclipse的demo,所以我直接导入idea出现很多问题,而且都没解决。
如果直接导入

然后一路next,最后出现了这个,用的是jdk1.7,而我用的是jdk12。jdk版本问题来了,忽略。

然后把,完整目录如下,没用过eclipse的我瑟瑟发抖,咋跟idea自己创建的目录结构不一样。

然后内容里面各种红,应该是jdk版本问题吧。这里我只是拿出来说一下,idea导eclipse工程真的太难了,在网上找了好多怎么怎么修改都不对。

正确姿势

将demo下载下来
自己在IDEA新建一个maven工程

然后把,得到基本结构

然后将java和jsp文件进行cv导对应文件夹

然后可以看到,jsp文件都是一片红,这时就需要在pom文件里导入依赖

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.zx</groupId><artifactId>alipay_demo</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><name>alipay Maven Webapp</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java --><dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>4.9.79.ALL</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.1.RELEASE</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.9</version></dependency><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.2</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency></dependencies><build><finalName>alipay</finalName><pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --><plugins><plugin><artifactId>maven-clean-plugin</artifactId><version>3.1.0</version></plugin><!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --><plugin><artifactId>maven-resources-plugin</artifactId><version>3.0.2</version></plugin><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.8.0</version></plugin><plugin><artifactId>maven-surefire-plugin</artifactId><version>2.22.1</version></plugin><plugin><artifactId>maven-war-plugin</artifactId><version>3.2.2</version></plugin><plugin><artifactId>maven-install-plugin</artifactId><version>2.5.2</version></plugin><plugin><artifactId>maven-deploy-plugin</artifactId><version>2.8.2</version></plugin></plugins></pluginManagement></build>
</project>

biuld哪些应该是不用加的,懒得改了,自己加入dependencies就行。
然后就等maven下载对应的依赖吧。
依赖完成导入后,jsp出现如下结果

要说明的是,上面个红框我们需要改成自己目录下,AlipayConfig.java文件所在目录,比如我自己的就是com.zx.config,所以每个jsp都需要更改路径,
第二个红框在我们更改成正确路径后会消失。还有一点小问题就是每个jsp文件后的out.println,那个println是标红的,现在我使用起来没啥问题,也没找到解决方案,就暂时没管。

配置AlipayConfig.java

需要配置如下几项

  1. app_id:填写上文中给的分配的id
  2. merchant_private_key:支付宝开放平台开发助手,生成的公私钥
  3. alipay_public_key:上文中利用生成公钥得到的支付宝公钥
  4. notify_url和return_url那里的工程公网访问地址使用natapp生成的url进行替换
  5. gatewayUrl改成"https://openapi.alipaydev.com/gateway.do";对应的是开发环境。
    新建一个tomcat,将工程导入

    好了,一切ok,开始测试吧。

测试

运行tomcat

坑又来了


啥意思,看了一下是编码问题。。这问题太麻烦了吧
解决方案:
1.idea右下角将AlipayConfig.java文件先转成GBK


然后再将GBK转成UTF-8格式。运行tomcat:
成功!

付款测试

自己改了一下订单,当然,金额也可以改。

点击付款
结果????????,我在沙箱环境测试工程,你告诉我在钓鱼?心态崩了

我使用的是chrome,可能chrome有什么安全机制,导致出现这个问题。
解决方案:这里我换的是 edge,其它浏览器应该也行

我还没搞那个沙箱app就点击登录账户

在之前那个沙箱界面,有用于测试的卖家账户和买家账户,登录即可



支付跳转后,是这个界面。。隧道那出现问题了。说主机拒绝了这个请求。


参考NATAPP连不上,发现确实是端口问题,这时候就需要进行NATAPP端口的配置

将端口号改成与tomcat一样的端口,我的tomcat配置是8666端口。

后来进行测试,返回404错误,是主机的问题,隧道已经穿透成功了。
怎么解决呢,看了看文章,我怎么没想到把代码里的url粘进地址栏直接访问呢。。尝试了一下,果然失败,仔细一看自己的url,发现完全不对啊,要访问的是webapp下的notify_url.jsp 和return_url.jsp,怎么会是什么/alipay.trade.page.pay-JAVA-UTF-8/notify_url.jsp。

晕,当时没仔细看,以为就改个前面的natapp的地址呢。结果natapp对应的是127.0.0.1:8666,需要改成正确路径才可以访问webapp下的jsp。比如我的tomcat设置的访问路径为

那么完成url应该为

// 服务器异步通知页面路径  需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
public static String notify_url = "http://s2qvj3.natappfree.cc/alipay_demo_war/notify_url.jsp";// 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
public static String return_url = "http://s2qvj3.natappfree.cc/alipay_demo_war/return_url.jsp";

简单的基础问题,还是要细心,要思考啊。。
最后,终于成功了

可以在沙箱环境里可以体验有钱人的生活。。。。。

使用IDEA进行支付宝沙箱测试相关推荐

  1. 支付宝沙箱测试手机网站支付,提示商户合作协议已到期,无法继续使用

    问题:大家好,我的php支付宝沙箱测试手机网站支付,提示商户合作协议已到期,无法继续使用,进行pc电脑网站支付都正常,手机网站支付却不行,请问这个是什么原因呢? 回答: 说明:   这个报错是出现在沙 ...

  2. 如何使用支付宝沙箱测试单笔转账到支付宝账号(php版)

    说明:    本帖是利用支付宝沙箱测试电脑网站支付接口    测试环境:Apache2.4.23 +php 5.6.25    沙箱环境测试正式环境请修改网关为下方值 正式环境网关:https://o ...

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

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

  4. app沙箱宝支付接口怎么测_支付宝沙箱测试DEMO实践

    1.DEMO说明 本次测试只实现支付宝沙箱里面的 扫码支付.商家退款:(本来买家支付也想实现来着:但是没找到相关接口信息所以暂未实现:有知道的朋友请告知) 2.支付宝开放平台沙箱地址: https:/ ...

  5. 支付宝沙箱测试电脑网站支付 php版

    一.登陆蚂蚁金融商户平台 因为是沙箱测试,登陆我们个人的支付宝账号就行. 地址:https://open.alipay.com/platform/home.htm 二.填写个人信息 对于第一次登陆的账 ...

  6. node+vue实现支付宝沙箱测试教程

    支付宝的沙箱测试需要前端做的并不多,只是调用一个后端定义的接口,将所需要的订单信息传输到后台,后台进行支付宝的sdk封装,然后返回前端一个链接地址跳转到支付宝的支付页面进行付款即可. 一. 前端的实现 ...

  7. 支付宝沙箱测试-ALI40247

    支付宝快速接入文档 测试支付宝APP支付时碰到ALI40247问题 前提:服务端采用沙箱测试. 关于沙箱 如何接入沙箱 沙箱环境是开放平台提供给开发者调试接口的环境,具体操作步骤见沙箱接入指南. Ap ...

  8. android 支付宝沙箱测试,Android——接入支付宝支付(沙箱环境测试)

    简单的记录下支付宝的APP端支付的流程吧! 希望能帮助到ni 1.登录支付宝开发平台 ====================================================== 2. ...

  9. 如何使用沙箱测试单笔转账到支付宝账号(php版)

    说明:    本帖是利用支付宝沙箱测试电脑网站支付接口    测试环境:Apache2.4.23 +php 5.6.25    沙箱环境测试正式环境请修改网关为下方值    复制代码 1 正式环境网关 ...

最新文章

  1. 信息保留的二值神经网络IR-Net,落地性能和实用性俱佳 | CVPR 2020
  2. 实现if_如何解决开发中 if...esle 代码过多的问题,强烈推荐!
  3. java 死锁 内存消耗_详解Java中synchronized关键字的死锁和内存占用问题
  4. 在SpringBoot中使用redis实现分布式锁
  5. 安装win7和centos6.7双系统 引导加载安装位置问题
  6. 第二周CoreiDRAW总结
  7. linux安装库文件下载,Linux下的Curses库的下载与安装
  8. Foxmail新建自动标签功能在哪 如何给Foxmail收件人邮件设置自动标签
  9. Windows XP SP3 最终发布日期公布
  10. httpservletresponse 重定向浏览器不变的原因_正确区分火狐浏览器(Firefox)中国版和国际版amp;下载方法...
  11. 位带操作全解释,个人觉得不错就转过来理解下
  12. 本周Whale Alert监测到7.9万枚BTC在匿名地址间转账
  13. 《Web性能实践日志》一1.5 浏览器的发展
  14. java 获取mac地址_java入门知识点和环境准备
  15. 移动端适配的理解——REM方案
  16. 为什么时间是60进制的啊? ? ?
  17. 电力巡检解决方案解决方案
  18. Brackets - (HTML/CSS/JavaScript 前端 WEB IDE) 使用技巧
  19. 【操作系统】结合哲学家进餐问题分析如何预防死锁
  20. mysql median_MySQL中查询中位数?

热门文章

  1. 3Dmax2010教程 第一课
  2. 教你如何抢注删除域名
  3. Excel如何按照指定顺序排列
  4. 给Lumia 520/521/525/526/720刷Android系统
  5. 饿了么修改侧边栏的高度为100%
  6. Python Day6 爬虫-lxml和多线程
  7. 注意:10种新人最让前辈讨厌
  8. [北京][2015年7月18日 周六] 工程师专场:忘记代码,一起来 “谈情说爱”
  9. 数字电源PFC控制原理CCM、DCM
  10. 网站建设与网站推广运营注意事项