我已经尝试了几天来解决这个问题,使用SDK附带的Dungeons演示代码.我试过谷歌寻求答案,但找不到答案.
android.test.purchased在控制台上创建的产品列表和已发布的订阅(我想要的应用程序的主要功能).但我仍然得到错误,Signature verification failed然后签名与数据不匹配.我怎么解决这个问题?
public static ArrayList<VerifiedPurchase> verifyPurchase(String signedData, String signature)
{
if (signedData == null) {
Log.e(TAG, "data is null");
return null;
}
if (Consts.DEBUG) {
Log.i(TAG, "signedData: " + signedData);
}
boolean verified = false;
if (!TextUtils.isEmpty(signature)) {
String base64EncodedPublicKey = "MIIBIjA....AQAB";
PublicKey key = Security.generatePublicKey(base64EncodedPublicKey);
verified = Security.verify(key, signedData, signature);
if (!verified) {
Log.w(TAG, "signature does not match data.");
return null;
}
}
}
public static boolean verify(PublicKey publicKey, String …Run Code Online (Sandbox Code Playgroud) 我不想输入我的信用卡进行Google Play测试.有什么方法可以像我们在iOS IAP测试中那样做吗?
或者是否可以创建用于测试的兑换代码?
原因是我添加我的信用卡号码感觉不舒服.我的一个朋友曾经通过谷歌钱包偷了大约600美元(尽管谷歌后来还给了他).
另一个不好的情况是我的另一位朋友从他的信用卡公司收到了支付Google Play应用程序结算测试费用的费用,尽管Google表示这样做是安全的.(他告诉我他甚至看到"这是一个测试订单,你"他做测试时不会被收费"
谢谢
在我第一次实施应用内结算时,我慢慢地(但有条不紊地)进行了调查,我达到了实际运行市场结算示例应用程序的程度:应用程序已签名并上传到AM,"产品列表"已创建根据说明,Google 和手机都设置了测试帐户.
但是当我继续(成功)购买时,尽管在AM上选择了测试帐户,我仍然被提示用我的真实gmail帐户确认购买,我的真实信用卡链接到该帐户.
例如,在测试PayPal时,也可以使用伪CC号创建测试帐户,以便自由测试,不会给真正的CC系统带来负担.
这也适用于In-app Billing开发和测试吗?
更新:我在另一台设备上进行了测试,只设置了测试帐户,并确定Android Market行为错误,并回复了以下错误消息:
您找到的商品无法找到.

我知道该项目在那里并且它在Android Market中正确设置,因为这个错误永远不会在具有CC编号的真实账户的设备上发出(我收到了掩盖的CC编号的完美行为,总计和一个Accept & buy按钮).为什么Google会写出如此误导性的错误消息?
更新:我发现这个令人难以置信的线程,似乎部分回答了我的问题.除非谷歌从那以后引入了新的东西.
为了能够测试Android Market许可的任何实施(例如LVL,应用程序内结算),Google建议创建一个Google Checkout 测试帐户,因为开发人员无法使用自己的Google Checkout帐户自行购买.
听起来不错,除了测试帐户必须使用真实的信用卡.
这引出了一个问题:这与普通账户有什么不同?普通帐户的测试帐户有什么优势?