Java后端SDK接取验证

一、Google

1.登录

  1. 文档参考:
    https://developers.google.com/identity/sign-in/android/backend-auth

  2. maven依赖

 <dependency>
    <groupId>com.google.api-client</groupId>
    <artifactId>google-api-client</artifactId>
    <version>1.30.4</version>
</dependency>
  1. 代码参考

    @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.充值

  1. 参考文档:
    https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.products

  2. maven依赖

<dependency>
    <groupId>com.google.apis<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java后端可以通过调用微信支付的API来实现微信小程序支付功能。 首先,我们需要在微信支付商户平台注册并获取到商户号、appid、appsecret等必要的信息。然后,在Java后端,我们可以使用SDK或者自行封装HTTP请求来调用微信支付的API。 在用户选择微信支付后,前端会发送支付请求到后端后端收到请求后,需要进行以下操作: 1. 生成订单:根据业务需求,后端需要生成一个唯一的商户订单号,并保存相关订单信息到数据库中。同时,需要计算订单的总金额、描述等参数。 2. 生成签名:根据微信支付要求,在生成订单后,后端需要根据商户号、appid、订单号、总金额等参数,生成一个签名值,确保请求的合法性和安全性。 3. 调用支付API:将生成的订单信息、签名等参数通过HTTP请求发送给微信支付后端API。此时,我们可以使用HttpClient等工具发送HTTP POST请求,并将结果解析为JSON格式。 4. 处理支付结果:微信支付后端API返回的结果包含支付所需的各种参数,例如预支付交易会话标识prepay_id等。后端需要将这些参数返回给前端,前端根据这些参数发起小程序支付。 此外,为了确保支付的安全性,后端还应该对微信支付回调进行处理。微信支付成功后,会异步回调后端提供的回调接口,我们需要验证回调接口的合法性,判断回调的结果,并根据业务逻辑进行相应的处理。 总的来说,Java后端可以通过调用微信支付的API来实现小程序支付功能,包括生成订单、生成签名、调用支付API和处理支付回调等步骤。这样,用户在小程序中选择微信支付后,后端可以实现支付逻辑,并与微信支付后端进行交互,最终完成支付流程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值