获取订阅状态(https://developers.google.com/android-publisher/api-ref/purchases/subscriptions/get)后,API会响应
{
"error": {
"errors": [
{
"domain": "androidpublisher",
"reason": "purchaseTokenNoLongerValid",
"message": "The purchase token is no longer valid."
}
],
"code": 410,
"message": "The purchase token is no longer valid."
}
}
Run Code Online (Sandbox Code Playgroud)
我无法在Android发布商API的上下文中找到任何提及"purchaseTokenNoLongerValid"或"购买令牌不再有效"的内容,无论是在文档中还是在Google搜索中.
我可以猜出这个错误意味着什么,但更好地确切地知道,无论如何,在此错误之后我应该如何处理订阅?
\n\n\n首先:我知道我可以为每个语言环境手动创建一堆具有相应模式的配置文件;实际上,我尝试找到仅使用 IntlDateFormatter 的解决方法。
\n
我将尝试用例子来解释。
\n\n<?php\n\n$tz = new DateTimeZone(\'Europe/Moscow\');\n$now = time();\nforeach ([\'en_US\', \'ja_JA\', \'ru_RU\'] as $locale) {\n printf("%s:\\n", $locale);\n\n foreach ([IntlDateFormatter::MEDIUM, IntlDateFormatter::LONG] as $datetype) {\n $formatter = new IntlDateFormatter($locale, $datetype, IntlDateFormatter::NONE);\n printf("- %s\\n", $formatter->format($now));\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n这会产生
\n\nen_US:\n- Feb 1, 2016\n- February 1, 2016\nja_JA:\n- 2016/02/01\n- 2016\xe5\xb9\xb42\xe6\x9c\x881\xe6\x97\xa5\nru_RU:\n- 1 \xd1\x84\xd0\xb5\xd0\xb2\xd1\x80. 2016 \xd0\xb3.\n- 1 \xd1\x84\xd0\xb5\xd0\xb2\xd1\x80\xd0\xb0\xd0\xbb\xd1\x8f 2016 \xd0\xb3.\nRun Code Online (Sandbox Code Playgroud)\n\n我需要
\n\nen_US:\n- Feb 1\n- February 1\nja_JA:\n- 02/01\n- 2\xe6\x9c\x881\xe6\x97\xa5\nru_RU:\n- 1 \xd1\x84\xd0\xb5\xd0\xb2\xd1\x80.\n- 1 \xd1\x84\xd0\xb5\xd0\xb2\xd1\x80\xd0\xb0\xd0\xbb\xd1\x8f\nRun Code Online (Sandbox Code Playgroud)\n\n第一个想法是提取给定区域设置的模式并删除任何“y”和“Y”字母。但正如您所看到的,不仅仅是 4 位数的年份:所有逗号、斜杠、标签(如 \'\xd0\xb3.\' 和 …