1.进入支付宝开放平台官网,下载开发助手
官网地址:https://open.alipay.com/
文档中心:https://opendocs.alipay.com/common/
进入文档中心->通用工具->支付宝开发平台开发助手
点击下载Windows版本
下载之后顺序点击安装即可。
使用开发助手
2.加密
2.1对称加密
对称加密是 : 明文–>加密–>密文
密文–>解密–>明文
2.2非对称加密
私钥加密的密文必须使用公钥解密
公钥加密的密文必须使用私钥解密
3.内网穿透
3.1 下载安装natapp
因为我们自己所写的项目是在内网之中。这时候如果我们想要外网的支付宝来调用我们内网的应用的话就需要进行内网穿透。
内网穿透方面我们使用花生壳软件实现
花生壳官网:https://natapp.cn/
进入官网,注册登录成功之后,点击购买隧道,如果是测试使用的话购买一个免费使用的即可
隧道构建成功后点击上方的客户端下载,根据自己的电脑版本选择对应的客户端。
客户端下载完成后解压下来
3.2配置文件
在客户端解压文件的同级目录下创建一个conifg.ini的配置文件
在config文件中进行配置
#将本文件放置于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对应我的隧道中你所购买的隧道的authtoken
3.3进行测试
将其复制到配置文件中然后运行natapp.exe文件(注:默认的端口号是80)
访问对应的地址就可以通过外网访问到本机的服务。(注意:这个地址名随时会发生变化)
比如:开启tomcat,修改端口号为80,外部访问这个地址就看到tomcat的首页。
4.下载Demo文件
进入到文档中心–>开发–>服务端–>支付产品–>电脑网站支付–SDK&Demo
网址:https://gw.alipayobjects.com/os/bmw-prod/43bbc4ba-4d71-402f-a03b-778dfef047a8.zip
4.1部署到IDEA
①:打开Project Structure->Modules
②:点击加号->import module
③点击ok导入
④:根据截图依次点击下一步
⑤:选中报红的点击减号去掉
⑥:到Facets选项中添加web
(注意:在下面的设置要对应到WebContent)
7:到Artfacts中进行修改
8.设置tomcat
5.修改文件并进行测试
5.1进入沙盒环境
登录支付宝开放平台–>进入控制台–>进入沙盒
点击查看支付宝的公钥
5.2修改Demo中的AlipayConfig类
package com.alipay.config;
import java.io.FileWriter;
import java.io.IOException;
/* *
*类名:AlipayConfig
*功能:基础配置类
*详细:设置帐户有关信息及返回路径
*修改日期:2017-04-05
*说明:
*以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。
*该代码仅供学习和研究支付宝接口使用,只是提供一个参考。
*/
public class AlipayConfig {
//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
// 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
public static String app_id = "沙盒环境的app_id";
// 商户私钥,您的PKCS8格式RSA2私钥
public static String merchant_private_key = "使用支付宝开发者工具生成的私钥";
// 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
public static String alipay_public_key = "支付宝生成的公钥";
// 服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
public static String notify_url = "http://粘贴在natapp中生成的网址/alipay.trade.page.pay-JAVA-UTF-8/notify_url.jsp";
// 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
public static String return_url = "http://粘贴在natapp中生成的网址/alipay.trade.page.pay-JAVA-UTF-8/return_url.jsp";
// 签名方式
public static String sign_type = "RSA2";
// 字符编码格式
public static String charset = "utf-8";
// 支付宝网关
// public static String gatewayUrl = "https://openapi.alipay.com/gateway.do";
// 支付宝沙箱环境网关 修改为沙盒的网关
public static String gatewayUrl = "https://openapi.alipaydev.com/gateway.do";
// 日志路径
public static String log_path = "C:\\";
//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
/**
* 写日志,方便测试(看网站需求,也可以改成把记录存入数据库)
* @param sWord# 要写入日志里的文本内容
*/
public static void logResult(String sWord) {
FileWriter writer = null;
try {
writer = new FileWriter(log_path + "alipay_log_" + System.currentTimeMillis()+".txt");
writer.write(sWord);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}