一、Google
1.登录
-
文档参考:
https://developers.google.com/identity/sign-in/android/backend-auth -
maven依赖
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client</artifactId>
<version>1.30.4</version>
</dependency>
-
代码参考
@Override public void init() { verifier = new GoogleIdTokenVerifier.Builder(new NetHttpTransport(), JacksonFactory.getDefaultInstance()) // Specify the CLIENT_ID of the app that accesses the backend: .setAudience(Collections.singletonList(CLIENT_ID)) // Or, if multiple clients access the backend: //.setAudience(Arrays.asList(CLIENT_ID_1, CLIENT_ID_2, CLIENT_ID_3)) .build(); } public void googleLogin(GoogleDataRequest request, StreamObserver<GoogleDataResponse> responseObserver) { GoogleDataResponse.Builder builder = GoogleDataResponse.newBuilder(); try { GoogleIdToken idToken = verifier.verify(request.getToken()); if (idToken != null) { GoogleIdToken.Payload payload = idToken.getPayload(); // Print user identifier String userId = payload.getSubject(); //note 注释部分数据可能获取不到 // Get profile information from payload String iss = (String) payload.get("iss"); String aud = (String) payload.get("aud"); if (!CLIENT_ID.equalsIgnoreCase(aud)) { LogUtil.warn("验收失败aud:{} {}", aud, CLIENT_ID); builder.setStatus(1); return; } if (!GOOGLE_URL_1.equalsIgnoreCase(iss) && !GOOGLE_URL_2.equalsIgnoreCase(iss)) { LogUtil.warn("验收失败iss:{}", iss); builder.setStatus(1); return; } builder.setUserId(userId); } else { builder.setStatus(1); } } catch (Exception e) { LogUtil.error("Google验证失败", e); builder.setStatus(1); } finally { responseObserver.onNext(builder.build()); LogUtil.info("Google登录验证:{}", builder.build().toString()); responseObserver.onCompleted(); } }
2.充值
-
参考文档:
https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.products -
maven依赖
<dependency>
<groupId>com.google.apis<