【问题标题】:Implementing receipt validations on playstore in-app purchase using purchase token使用购买令牌对 Playstore 应用内购买实施收据验证
【发布时间】:2020-11-10 04:49:21
【问题描述】:

我正在使用store receipt validator 库来实现验证。

这个库使用google-purchase-api,但根据响应正文,我没有得到任何东西,大多数字段值是null

这是我的代码 sn-p

       $googleClient = new \Google_Client();
        $scope = ['https://www.googleapis.com/auth/androidpublisher'];
        $googleClient->setApplicationName('Bullet Force');
        $googleClient->setScopes([\Google_Service_AndroidPublisher::ANDROIDPUBLISHER]);
        $pathToServiceAccountJsonFile = json_decode(Storage::disk('local')->get('keys/privateKey.json'), true);
        $googleClient->setAuthConfig($pathToServiceAccountJsonFile);
        $validator = new PlayValidator(new \Google_Service_AndroidPublisher($googleClient));

        // receipt data
        $packageName = 'xxx.xxxxxxxxxx.xxx';
        $productId = 'xxxx';
        $purchaseToken = 'PURCHASE_TOKEN';

        try {
            $response = $validator->setPackageName($packageName)
              ->setProductId($productId)
              ->setPurchaseToken($purchaseToken)
              ->validatePurchase();
        } 
        catch (\Exception $e){
            echo $e->getMessage().PHP_EOL;
        }

回应:

所以正如我们在上面的响应中看到的那样,没有任何参数可以用来判断它是否是有效的交易。

请帮我解决这个问题。

谢谢!!

【问题讨论】:

    标签: php google-api in-app-purchase google-play-developer-api


    【解决方案1】:

    不知道为什么像obfuscatedExternalAccountId 这样的字段为空。我使用了 Firebase 身份验证,因此添加了用户的唯一 ID 作为此标识符,并用于验证通过此 link 一次以及此 answer 在堆栈上。我发现这很有帮助。

    【讨论】:

      猜你喜欢
      • 2011-10-12
      • 1970-01-01
      • 1970-01-01
      • 2010-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-31
      相关资源
      最近更新 更多