平台做充值功能,调用银联支付显示的竟然是英文界面,百撕不得骑姐。
如图:
然后其实银联中支持两种语言,分别是中文和英文,虽然SDK经过了混淆,但还是能看出点猫腻
如下:
使用哪套支付界面,其逻辑如下:
如果Locale语言是中文,就显示中文界面;其它语言全部显示英文界面。
debug发现,我们的应用启动的时候语言是中文 “zh_CN”
而调银联的时候竟然变成了“en_US”。而且之后一直都是"en_US"
再之后,省略1万个千辛万苦,最后发现这个变化是在调用高德SDK进行定位的时候发生的。
心中一万匹草泥马啊,在高德地图开发者论坛中确认了这个问题,有不少其它人有类似情况,比如下面这位
这个bug版本是:AMap_Location_v2.3.0_20160112
最后,给出一个解决办法,
在每次调用高德地图后,手动设置一下语言。希望能帮到你
String languageToLoad = "zh-CN";
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);