如果离开"开发者有效载荷"会发生什么?作为空白Google Play应用内结算

时间:2014-04-24 11:48:26

标签: android in-app-billing

好吧,我已经阅读了很多关于"开发人员有效负载"但我不清楚,对于#34;开发者有效载荷"用于。所以我试图将此作为空白使用:

    public void onUpgradeAppButtonClicked(String SKU) {
    Log.d(TAG,"Upgrade button clicked; launching purchase flow for upgrade.");

    /*
     * TODO: for security, generate your payload here for verification. See
     * the comments on verifyDeveloperPayload() for more info. Since this is
     * a SAMPLE, we just use an empty string, but on a production app you
     * should carefully generate this.
     */
    String payload = "";

    mHelper.launchPurchaseFlow(this, SKU, RC_REQUEST,
            mPurchaseFinishedListener, payload);
}

而且:

boolean verifyDeveloperPayload(Purchase p) {
    String payload = p.getDeveloperPayload();
    return true;
}

所以我拍了一张照片。适用于3种情况。我想了解条件

后会发生什么

enter image description here

3 个答案:

答案 0 :(得分:5)

是的,在场景2中最可能出现这种情况。

但有多少用户使用方案2?我想这不会很多。大多数人不共享他们的设备。

但是如果这个有效负载字符串留空,我正在考虑另一种破解可能性。它很容易被打破。

唯一令我生气的是这个东西应该在谷歌API方面。 Google的工作是验证并确定谁购买了该商品。为什么我们需要自己的服务器?

答案 1 :(得分:2)

您应该传入一个字符串令牌,以帮助您的应用程序识别进行购买的用户,以便您以后验证这是该用户的合法购买。

将此视为收据。如果客户进来并希望退回物品或保修单,您需要确保收据没有在家打印。使用此令牌有助于防止欺诈。

答案 2 :(得分:1)

这不是必需的,但建议。根据文档,您可以发送一个空字符串,虽然我不确定null。出于安全原因,这是可取的。例如,您可以使用有效负载来验证购买是否由您打算购买。查看结算Security Best Practices