Skip to content

Commit

Permalink
feat(#14): save ticket
Browse files Browse the repository at this point in the history
  • Loading branch information
Jeff-Tian committed Sep 7, 2023
1 parent 9589c44 commit 2505446
Show file tree
Hide file tree
Showing 8 changed files with 504 additions and 17 deletions.
12 changes: 12 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,13 @@
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-model-jpa</artifactId>
<version>${keycloak.version}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
Expand Down Expand Up @@ -114,5 +121,10 @@
<version>1.18.26</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>jakarta.persistence</groupId>
<artifactId>jakarta.persistence-api</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -244,13 +244,14 @@ protected UriBuilder createAuthorizationUrl(AuthenticationRequest request) {
var wechatApi = new WechatMpApi(
config.getConfig().get(WECHAT_MP_APP_ID),
config.getConfig().get(WECHAT_MP_APP_SECRET),
session
session,
request.getAuthenticationSession()
);

var ticketUrl = wechatApi.createTmpQrCode(new TicketRequest(2592000, "QR_STR_SCENE", new ActionInfo(new Scene("1")))).url;
logger.info("ticketUrl = " + ticketUrl);
var ticket = wechatApi.createTmpQrCode(new TicketRequest(2592000, "QR_STR_SCENE", new ActionInfo(new Scene("1")))).ticket;
logger.info("ticket = " + ticket);

uriBuilder.queryParam("ticket-url", ticketUrl);
uriBuilder.queryParam("ticket", ticket).queryParam("qr-code-url", "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" + ticket);
}
} else {
uriBuilder = UriBuilder.fromUri(config.getAuthorizationUrl());
Expand Down
32 changes: 32 additions & 0 deletions src/main/java/org/keycloak/social/weixin/cache/TicketEntity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package org.keycloak.social.weixin.cache;

import jakarta.persistence.Id;
import jakarta.persistence.NamedQueries;
import jakarta.persistence.NamedQuery;
import lombok.Getter;
import lombok.Setter;
import jakarta.persistence.Entity;

@NamedQueries({
@NamedQuery(name = "TicketEntity.findById", query = "select t from TicketEntity t where t.id = :id"),
@NamedQuery(name = "TicketEntity.findByTicket", query = "select t from TicketEntity t where t.ticket = :ticket"),
})
@Getter
@Entity
public class TicketEntity {
@Setter
@Id
private String id;
@Setter
private String ticket;
@Setter
private String status;
@Setter
private Number expireSeconds;
@Setter
private Number ticketCreatedAt;
@Setter
private Number scannedAt;
@Setter
private String openid;
}
Loading

0 comments on commit 2505446

Please sign in to comment.