# 支付宝网关名、partnerId和appId
open_api_domain = https://openapi.alipaydev.com/gateway.do
mcloud_api_domain = http://mcloudmonitor.com/gateway.do
pid = 2088621955632751
appid = 2021000117643966
# RSA私钥、公钥和支付宝公钥
private_key = MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCIRDtgHGxla0kAjKhvk85V7/7GWFNnECAvWreuciZ3AX9ngS27GtPWv0unsSdcn10ExbFEW1gmPE3suOesfl8MKWt5xahwPUx7MPE60WakBuzObVeMkQLLqbkYc4d1v6ORBPkEWCwhDGwmlEz/K4kCKUfAMv2eAiuCKgpyMgeOTFtEz4N4Lz+YwleC5GiUnXb8xIl8RV8i7fwNEZ8Cr3urUQka+gdcKgInyvqXeMsgA/zl7ucLK+SlrnqkBtlFYJrWay0zd/3kCjBIgjppxHoCIhPGE8A+MWNIRS3gAMwUnuTwbZinsOKJOEIWZipnrYkUD4AcZvpAFvVz2rGGDzaDAgMBAAECggEAE0sN2RLNKiLhiCliI8IaocJEIVMaI+p9lBbVEObqmUjmAAKjNe2bdrlI/eowN4X8xpMzAQmp1mgNZGndq2eND4zBwdEBgzq6nGqWjQxe6vRsDOIgVi+l5K4YHeUllb9Xak347+uH+/nlSiUPLcW9NUgg946AqCGIhXpsVjTNKxFfOPdPbAW51+OxKCbevpj2X4o/VTUCbmuescrMo5i1ckRZF4+DRmcKoj1YzLY2YgVh++K1Fs6pfoOc6+uo1MTOaMD9zipSU7oOETGWpV3yJ86jtm03iI4XScTE6CHHjqEiJwBbm3mV9ap+51zoSCdziUCqKR91Zc0FW+arBOwWyQKBgQD83nhL5qAZqBPbl/lCI3HyOpkHmA/t99Oq+pr5KgJObExl3ykQ38mF9T4oVY1YPFjLfrrb1Fq1sWEwYmF1q/LiBl4LyLzk2EOGNRvYHfw/ZpT1JPSJhgHBi8agybrIC/pAVAu4ZxnEQGP6BpxX7aenhmuuWuHLWg/maowrrl5jtwKBgQCJ9Cl2p+b+8I5zpSwgI4rI6t/cgmVKq2stamBmKN5d+CWt9+cQ+Uq+bmtMpDg6E6ccEb2TmdBgAMTurFhPzlrKdE5kH4v9UUpMSxWbdkfeodHUd8SHerM8iwZ98Xpqizs0BAVTOJWIokLCrADmZPPDdi7+0J89mK79WpVt4Pw7lQKBgEmbZL8LWg093NHuMhNrh+6v2f3Y6MIngsjhfB0NenBjm/WHeUe9LMc+tSI+jQ9jOaG6uR/md6UuBhF0gdQkAmaC3ftmKn4e6cD2Uq2dROEbtj6JzFj/1iEF1ALX1fQHcIgrLuI1uM1kxPVx2S7LMiNUwKGXOOTdyYUT/Mt2TWmPAoGAFbcFP9Q2HDMpeTKqu3RcyDuQeVldMF/DQybXfb05I3mIFNZM3PMgvNEMuseuwhWN3HE+chloH3R/i0I9tHI7AFtGa6Q7mOhO1auL/yijL3wxV0xy9xBtXj5UC0cTienYq9tmKy9g+lzwPUxt59ZEOKRFyX51UnDSOrcjhmQ/z/ECgYAXJ3v1fQvu8FwNR/5g3Yb3a8d891sbnGoxoXtZFzfnkydalU7G2dVz5yLJ5Ja22H/1h5FvS9abimmRb/agvKl5WIEur292DAskoWtCM4upXcpFwaLXQeWK+ingxfkb/Ago/jbdOq9eHcF7xjDLCRgIjcdok7u1k5oqJAmOdEmdHQ==
public_key = MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiEQ7YBxsZWtJAIyob5POVe/+xlhTZxAgL1q3rnImdwF/Z4EtuxrT1r9Lp7EnXJ9dBMWxRFtYJjxN7LjnrH5fDClrecWocD1MezDxOtFmpAbszm1XjJECy6m5GHOHdb+jkQT5BFgsIQxsJpRM/yuJAilHwDL9ngIrgioKcjIHjkxbRM+DeC8/mMJXguRolJ12/MSJfEVfIu38DRGfAq97q1EJGvoHXCoCJ8r6l3jLIAP85e7nCyvkpa56pAbZRWCa1mstM3f95AowSII6acR6AiITxhPAPjFjSEUt4ADMFJ7k8G2Yp7DiiThCFmYqZ62JFA+AHGb6QBb1c9qxhg82gwIDAQAB
#SHA1withRsa对应支付宝公钥
#alipay_public_key = MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDI6d306Q8fIfCOaTXyiUeJHkrIvYISRcc73s3vF1ZT7XN8RNPwJxo8pWaJMmvyTn9N4HQ632qJBVHf8sxHi/fEsraprwCtzvzQETrNRwVxLO5jVmRGi60j8Ue1efIlzPXV9je9mkjzOmdssymZkh2QhUrCmZYI/FCEa3/cNMW0QIDAQAB
#SHA256withRsa对应支付宝公钥
alipay_public_key = MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArkAaSq5wlbM3NFcabjykX18n51dGmjdvp10PgLuc1QXT0otSW2yC0aCNzZlalAntLihd0MIrNcUk6/amcY9sSMGiLPz9XowMqLv72YhyJXbp75FGGsQQKIi/OA9EdZ31ioUPqDfLpiT4qXH6chvajqMFbPwdcBvFPvmN0Q9iX8nIcBtp+XSRlhLd2cmAJkjYCR2JGwSMtr86jPf6ZxF4wLpO+sbMS8ir0VTf0ADgE6OlD8ckBdA9ElGg0trwEPREZZKp/8vEDRYOfn9d7YtHp16qIcSzZcGjxEtnneaaL+wHM+z1b+QVOYTOGRJkl24MQJCxQ+XktWkPMAgvi4Qo2QIDAQAB
# 签名类型: RSA->SHA1withRsa,RSA2->SHA256withRsa
sign_type = RSA2
# 当面付最大查询次数和查询间隔(毫秒)
max_query_retry = 5
query_duration = 5000
# 当面付最大撤销次数和撤销间隔(毫秒)
max_cancel_retry = 3
cancel_duration = 2000
# 交易保障线程第一次调度延迟和调度间隔(秒)
heartbeat_delay = 5
heartbeat_duration = 900
可以了解一下公钥私钥加密
// 测试当面付2.0生成支付二维码
public String test_trade_precreate(String shopName,Double totalPrice)
返回生成的二维码
测试当面付2.0查询订单
public boolean test_trade_query(String outTradeNoPrecreate)
用来判断支付订单状态
// 二维码付款
button4.addActionListener(
new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Thread t1 = new Thread(
new Runnable() {
@Override
public void run() {
//等待t1执行wait方法释放锁,并让主线程进入阻塞态,让二维码先生成
synchronized (this) {
Main main = new Main();
filePath = main.test_trade_precreate(shopName,totalPrice);//先生成二维码才能执行下面的读取二维码图片,线程控制
outTradeNoPrecreate = main.outTradeNoPrecreate;
notify();//唤醒正在阻塞态的主线程
}
}
}
);
// 获取t1对象的锁
synchronized (t1){
t1.start();//开启线程
try {
/*
“主线程” 执行t1.wait() 释放“t1对象的锁”并且进入 等待(阻塞)状态,
目前正在阻塞态的是主线程,也就是t1线程体如果不唤醒主线程就不会执行弹出二维码图片
*/
t1.wait();
PayCode payCode = new PayCode(filePath);//弹出已生成的二维码图片
payCode.setVisible(true);
// 判断支付子线程
Thread t2 = new Thread(
new Runnable() {
@Override
public void run() {
Main main = new Main();
while (true) {
try {
Thread.sleep(5000);//每五秒查询一次订单支付状态
} catch (InterruptedException interruptedException) {
interruptedException.printStackTrace();
}
// 每五秒判断一次订单支付状态,如果支付了更新数据库
if(main.test_trade_query(outTradeNoPrecreate)){
try {
java.util.List<Commodity> list = CartJDBC.getCartByUser(userId);
CommodityJDBC.saleCommodity(list);
CartJDBC.delectAll(userId);
} catch (ClassNotFoundException classNotFoundException) {
classNotFoundException.printStackTrace();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
// 支付成功了关闭支付宝二维码
payCode.setVisible(false);
break;
}
}
}
}
);
t2.start();
} catch (InterruptedException interruptedException) {
interruptedException.printStackTrace();
}
}
}
}
);