前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >支付接口对接之支付宝

支付接口对接之支付宝

作者头像
DeROy
发布2020-11-04 10:00:57
1.5K0
发布2020-11-04 10:00:57
举报
文章被收录于专栏:编程学习基地

今日主题:支付接口对接之支付宝

环境

IDEA2018、Maven3

实现过程

1.进入https://developers.alipay.com/platform/home.htm,登录,选择自研(如果是学习使用)

选择研发服务

支付宝给你分配了APPID

单击设置

2.安装软件,进入软件,点击生成密匙

将公匙,复制到开发中心

内网穿透

1.进入官网:https://natapp.cn/,登录点击购买隧道,免费隧道。

这里的端口应该填tomcat的端口

2.点击右上角客户端下载,选择自己位数即可

需要在该exe的同级目录下创建一个config.ini文件,官方有详细说明

官方给出的内容为:

代码语言:javascript
复制
#将本文件放置于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序列,填进该文件。比如可将文件修改为

代码语言:javascript
复制
#将本文件放置于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,后面需要使用。到这里内网穿透就暂时告一段落

IDEA进行DEMO测试

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

因为官方给的是eclipse版的,所以我们需要这样做,自己创建一个maven工程

目录结构如下:

复制官方文档src目录下的东西到java下面去,将WebContent下面的jsp文件复制到webapp下面去,最终的目录结构为:

pom.xml中加入以下依赖:

代码语言:javascript
复制
 <!-- 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>

然后所有的文件都不爆红了,完全正常

配置AlipayConfig.java

说明:

app_id:填写开发中心分配的id

merchant_private_key:支付宝开放平台开发助手,生成的私钥

alipay_public_key:支付宝公钥

notify_urlreturn_url那里的工程公网访问地址使用natapp生成的url进行替换

gatewayUrl:改成https://openapi.alipaydev.com/gateway.do

现在就准备好了所有环境,现在就启动Tomcat服务器

报错

由于这是eclipse项目,所以AlipayConfig.java的文件编码格式是GBK,我们需要将他转成GBK,然后再转成UTF-8

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

这里输入沙箱环境买家的账号和密码

输入支付密码

支付成功

然后显示回调页面

注明:

内网穿透的作用是让别人可以访问你的网页,因为我们的环境都是内网,如果你只是想在本地看到回调的信息,我们可以设置notify_urlreturn_url的路径前缀为:http://localhost:+tomcat的端口号/...jsp

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程学习基地 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境
  • 实现过程
  • 内网穿透
  • IDEA进行DEMO测试
  • 报错
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档