对接第三方支付宝支付服务

导入相关SDK

在这里插入图片描述

配置文件

在这里插入图片描述

在这里插入图片描述

# 支付宝网关名、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();
                    }
                }
            }
        }
);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值