1.支付宝接口
2.电脑网站支付
2.1创建应用
我们直接使用沙箱的环境 应用已经创建好了 不需要自己创建应用了。
2.2支付流程
2.3demo
1.下载:
2.导入-》配置jdk和tomcat
3.修改一些配置
package com.alipay.config;
import java.io.FileWriter;
import java.io.IOException;
/* *
*类名:AlipayConfig
*功能:基础配置类
*详细:设置帐户有关信息及返回路径
*修改日期:2017-04-05
*说明:
*以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。
*该代码仅供学习和研究支付宝接口使用,只是提供一个参考。
*/
public class AlipayConfig {
//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
// 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
//使用沙箱环境的APPID
public static String 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这类自定义参数,必须外网可以正常访问
//工程公网访问地址:设置为内网穿透的地址 http://dzptwv.natappfree.cc
public static String notify_url = "http://dzptwv.natappfree.cc/alipay.trade.page.pay-JAVA-UTF-8/notify_url.jsp";
// 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
public static String return_url = "http://dzptwv.natappfree.cc/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();
}
}
}
}
}
trade_no:2022020922001494960501897362
out_trade_no:202229213411526
total_amount:90000.00
3.加密
3.1对称加密
明文-》加密-》密文
密文-》解密-》明文
潘潘(明文):今晚八点老地方见
潘潘的加密:Jinwanbadianlaodifangjian
潘潘的加密:245648158845154815684
网络上发送信息(密文):245648158845154815684
庆庆接受的密文:245648158845154815684
解密:Jinwanbadianlaodifangjian
明文:今晚八点老地方见
强度不高 大郎如果截获密文并知道加密过程 就能够反推出明文
3.2非对称加密
私钥和公钥
私钥必须要用公钥解密 公钥必须用私钥解密
3.3调用支付宝接口时使用的密钥
在支付宝开放平台的应用中设置商户公钥(使用生成工具)
在支付宝开放平台的应用中获取支付宝的公钥
在我们调用支付宝接口的程序中设置:
1.支付宝公钥
2.商户私钥
4.内网穿透
4.1上网的常规方式
在内网中访问外网很方便
4.2项目发布的方式
先在内网的环境中完成开发,再部署到服务器上
4.3现在面临的特殊情况
我们现在再内网的开发环境下,需要让外网的支付宝来调用内网中的项目。如果不采用特殊处理时访问不到的 需要内网穿透技术。
4.4工具介绍
1.花生壳
2.NATAPP:https://natapp.cn/
下载地址:https://natapp.cn/#download
解压-》exe文件-》config.ini配置文件->同位置->运行exe得到域名地址
注意设置端口号
#将本文件放置于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 非代理上网用户请务必留空
#将本文件放置于natapp同级目录 程序将读取 [default] 段
#在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
#命令行参数 -config= 可以指定任意config.ini文件
[default]
authtoken=82d9914467428bb8 #对应一条隧道的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 非代理上网用户请务必留空
5.支付宝沙箱环境
1.密钥
2.APPID
3.网关地址
4.公钥私钥
生成并设置自己的公钥-》查看支付宝的公钥