Google Pay的主要支付流程
1. 手机端通过与Java服务端的交互,发起支付请求并生成预订单,在完成后将生成的订单号返回给手机端。
2. 通过手机端向Google发起支付请求(包含本地服务器生成的订单号)。
3. Google服务器将支付结果发送回手机端(由于此处涉及消耗型产品,购买后必须通知Google Play我已完成本次交易)。
4. 手机端向Java服务端发送校验请求,一旦通过校验,即可顺利处理订单。服务端会进行重试校验,并在确认无误后进行发货操作,以确保订单能够成功正常发货。
配置
应用包名:packageName
凭证:密码
Java服务端处理
为了成功调用Google API,必须满足一个前提条件:需要使用海外服务器。否则,可能会出现超时的情况。
Maven Dependencies:
```xml com.google.apis google-api-services-androidpublisher v3-rev20211125-1.32.1 校验代码: ```@RestController public class GoogleController { //packageName为应用程序包名、productId商品id、purchaseToken谷歌返回的收据 @PostMapping(/) public ProductPurchase checkOrder(@RequestBody GooglePayDto googlePayDto, HttpServletRequest requestDto) throws IOException, GeneralSecurityException { //使用服务帐户Json文件获取Google凭据 List scopes = new ArrayList(); scopes.add(AndroidPublisherScopes.ANDROIDPUBLISHER); ResourceLoader resourceLoader = new DefaultResourceLoader(); Resource resource = resourceLoader.getResource(classpath:static/刚下载的json文件,这里放到了static目录下); GoogleCredential credential = GoogleCredential.fromStream(resource.getInputStream()) .createScoped(scopes); //使用谷歌凭据和收据从谷歌获取购买信息 HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); JacksonFactory jsonFactory = new JacksonFactory(); AndroidPublisher publisher = new AndroidPublisher.Builder(httpTransport, jsonFactory, credential) .setApplicationName(应用程序名).build(); AndroidPublisher.Purchases purchases = publisher.purchases(); final AndroidPublisher.Purchases.Products.Get request = purchases.products().get(googlePayDto.getPackageName(), googlePayDto.getProductId(),googlePayDto.getPurchaseToken()); Syst... } ```packageName: the name of the package
商品ID:产品编号
购买令牌:支付凭证
结果:
版权声明:搭建盘口维护联系TG:@KT_code
还木有评论哦,快来抢沙发吧~