我正在尝试实现 Apple 发布的新VerificationController.m类,以解决应用内购买欺诈问题。
作为 Apple 发布的所有内容,这是一份更加模糊、不完整和糟糕的解释文档,其中包含许多无法被所有人规避/理解的空白和未知数。
我正在尝试实现它,但在代码末尾我们看到这四种方法:
- (NSString *)encodeBase64:(const uint8_t *)input length:(NSInteger)length
{
#warning Replace this method.
return nil;
}
- (NSString *)decodeBase64:(NSString *)input length:(NSInteger *)length
{
#warning Replace this method.
return nil;
}
#warning Implement this function.
char* base64_encode(const void* buf, size_t size)
{ return NULL; }
#warning Implement this function.
void * base64_decode(const char* s, size_t * data_len)
{ return NULL; }
您可以看到 Apple 在代码末尾懒于实现 C 函数。由于我的 C/C++ 能力很差,我看到我需要在 C/C++ 中实现这两个函数,并且它们必须返回 char 和 void (???)。其他人已经在 SO 上发布了执行此操作的例程,但他们要么在 Objective-C 中,要么不返回 chars 和 void (??)。
注意:这是我遇到的另一个问题:如果 Apple 以这种形式使用方法,它如何返回 void?
uint8_t *purchase_info_bytes = base64_decode([purchase_info_string cStringUsingEncoding:NSASCIIStringEncoding], &purchase_info_length);
它不应该返回 uint8_t 吗?
注意 2:我遇到的另一个问题是苹果说 base64_encode 是必需的,但它没有用于他们提供的代码。我认为他们在吸毒,或者我的 C/C++ 知识真的很臭。
所以,回到我的第一个问题。有人可以发布/指向一个可以完成符合声明的方法 base64_encode 和 base64_decode 要求的工作的方法吗?请不要发布与 Apple 提出的这些要求不兼容的 Objective-c 方法。
谢谢。