where do I get the signature from ?
请查看官方文档,
文档中指出在onActivityResult()
方法内您可以获取下列数据,就像示例中所示一样,
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1001) {
int responseCode = data.getIntExtra("RESPONSE_CODE", 0);
String purchaseData = data.getStringExtra("INAPP_PURCHASE_DATA");
String dataSignature = data.getStringExtra("INAPP_DATA_SIGNATURE");
if (resultCode == RESULT_OK) {
try {
JSONObject jo = new JSONObject(purchaseData);
String sku = jo.getString("productId");
String purchaseToken = jo.getString("purchaseToken");
}
catch (JSONException e) {
alert("Failed to parse purchase data.");
e.printStackTrace();
}
}
}
}
服务器端验证:
请参阅 官方文档
如前所述,客户端应用将向服务器API发送sku
和purchaseToken
。 服务器将接收这些值并使用Android Publish API执行购买验证:
服务器可以通过添加必要的参数调用以下GET请求:
https://www.googleapis.com/androidpublisher/v2/applications/packageName/purchases/products/productId/tokens/token
其中,
packageName = 客户端应用程序的包名
productId = 来自客户端应用程序的sku
token = 来自客户端应用程序的purchaseToken
服务器将以下列格式返回一个JSONObject
对象:
{
"kind": "androidpublisher#productPurchase",
"purchaseTimeMillis": long,
"purchaseState": integer,
"consumptionState": integer,
"developerPayload": string,
"orderId": string,
"purchaseType": integer
}
在这里,purchaseState = 0 表示有效购买
希望这对您有所帮助!!