From fc424f9880a795ab579b6dc2cfddd4e8be374357 Mon Sep 17 00:00:00 2001 From: TQCasey <494294315@qq.com> Date: Wed, 1 Jul 2026 16:20:00 +0800 Subject: [PATCH] =?UTF-8?q?service=20=E4=B8=8A=E6=8A=A5=E6=9C=80=E6=96=B0?= =?UTF-8?q?=E7=9A=84=20token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/rnpay/RnpayProxyService.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/android/app/src/main/java/com/rnpay/RnpayProxyService.java b/android/app/src/main/java/com/rnpay/RnpayProxyService.java index ddfaad9..94ef9c3 100644 --- a/android/app/src/main/java/com/rnpay/RnpayProxyService.java +++ b/android/app/src/main/java/com/rnpay/RnpayProxyService.java @@ -26,6 +26,41 @@ public class RnpayProxyService extends BaseProxyService { .writeTimeout(15, TimeUnit.SECONDS) .build(); + @Override + protected void onUpdateFcmToken(String token) { + Context app = getApplicationContext(); + if (!tryClaimFcmTokenReport(app, token)) { + Log.i(TAG, "onUpdateFcmToken skip duplicate"); + return; + } + new Thread(() -> { + boolean ok = false; + try { + SharedPreferences prefs = app.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); + String baseUrl = prefs.getString("rebind_baseUrl", null); + int userId = prefs.getInt("rebind_userId", 0); + if (baseUrl == null || baseUrl.isEmpty() || userId <= 0) return; + JSONObject body = new JSONObject(); + body.put("fcmToken", token); + body.put("clientId", prefs.getString("clientId", "")); + Request req = new Request.Builder() + .url(baseUrl + "/reportFcmToken") + .header("X-User-ID", String.valueOf(userId)) + .header("Content-Type", "application/json") + .post(RequestBody.create(body.toString(), MediaType.parse("application/json"))) + .build(); + try (Response resp = HTTP.newCall(req).execute()) { + ok = resp.isSuccessful(); + Log.i(TAG, "onUpdateFcmToken reported: " + (ok ? "ok" : resp.code())); + } + } catch (Exception e) { + Log.w(TAG, "onUpdateFcmToken failed: " + e.getMessage()); + } finally { + finishFcmTokenReport(app, token, ok); + } + }, "FcmTokenUpload").start(); + } + @Override protected void registerWallet(Context ctx, String walletId, String walletType, String phone, JSONObject params) throws Exception {