我的Java程序中已经有一段时间Webhook侦听器了,它的工作方式就像您将Webhook发送到侦听器的URL时一样。现在,我需要使URL为HTTPS,但是我不知道这是否是我需要在Java代码或Apache Web服务器中解决的问题。我有一个有效的受信任证书,但是每当我尝试通过Stripe发送一个Webhook时,它只会显示TLS错误并且不返回任何内容。我认为这是因为侦听器的端口未使用SSL,但我不知道该如何解决。如果将端口添加到Apache中的虚拟主机以使用HTTPS进行端口连接,则Java无法侦听该端口,因为该端口已在使用中。这是我的听众课。我需要添加一些代码以使其通过HTTPS进行监听吗?
侦听器(有效)的示例URL为http://verifus.ddns.net:4568/webhook。当HTTPS出现时,它根本不起作用。
import com.stripe.Stripe;
import com.stripe.model.*;
import com.stripe.net.ApiResource;
import net.dv8tion.jda.core.JDA;
import net.dv8tion.jda.core.entities.Role;
import org.apache.commons.httpclient.HttpStatus;
import org.simplejavamail.email.Email;
import org.simplejavamail.email.EmailBuilder;
import org.simplejavamail.mailer.MailerBuilder;
import us.verif.bot.Config;
import us.verif.bot.sql.StripeSql;
import java.security.SecureRandom;
import java.util.EventListener;
import java.util.Random;
import static spark.Spark.port;
import static spark.Spark.post;
public class StripeWebhook implements EventListener {
static final private String ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
final private Random rng = new SecureRandom();
private JDA jda;
public StripeWebhook(JDA jda) {
this.jda = jda;
}
public void startListener() {
port(Integer.parseInt(Config.getStripeWebhookPort()));
post("/webhook", (request, response) -> {
Event event = ApiResource.GSON.fromJson(request.body(), Event.class);
//Just some event checkers onwards