返回信息流扫描下面这两个码,支付宝客户端会闪退。
无论是安卓还是ios.....
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #32648同步于 2016/11/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖
发现支付宝客户端一个严重的bug.....
nijian81
2016/11/7镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
11-08 15:53:46.819 22109-22109/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.eg.android.AlipayGphone, PID: 22109
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.eg.android.AlipayGphone/com.alipay.mobile.payee.ui.PayeeQRPayFormActivity_}: java.lang.IllegalArgumentException: Invalid % sequence at 67: {"u":"2088002349320780","c":"1611017806104339","a":"9.60","m":"增加10%做题量"}
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2432)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2492)
at android.app.ActivityThread.access$900(ActivityThread.java:153)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1358)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5458)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)
Caused by: java.lang.IllegalArgumentException: Invalid % sequence at 67: {"u":"2088002349320780","c":"1611017806104339","a":"9.60","m":"增加10%做题量"}
at libcore.net.UriCodec.decode(UriCodec.java:169)
at java.net.URLDecoder.decode(URLDecoder.java:60)
at com.alipay.mobile.payee.ui.PayeeQRPayFormActivity.onCreate(PayeeQRPayFormActivity.java:169)
at com.alipay.mobile.payee.ui.PayeeQRPayFormActivity_.onCreate(PayeeQRPayFormActivity_.java:38)
at android.app.Activity.performCreate(Activity.java:6323)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
at com.alipay.mobile.quinox.activity.QuinoxInstrumentation.callActivityOnCreate(QuinoxInstrumentation.java:254)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2385)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2492)
at android.app.ActivityThread.access$900(ActivityThread.java:153)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1358)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5458)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)
确实有点问题[em1]
目测是%没转义……
【 在 lixing 的大作中提到: 】
: [code=java]
: 11-08 15:53:46.819 22109-22109/? E/AndroidRuntime: FATAL EXCEPTION: main
: Process: com.eg.android.AlipayGphone, PID: 22109
: ...................
看起来使用了URL.encode, 然后没有得到 '%做题'后不知道要怎么处理
就崩了
【 在 dss886 (「意涵团团委书记」「信意涵,得offer」) 的大作中提到: 】
: 目测是%没转义……
二维码的内容是https://qr.alipay.com/fkx03721e0ev1a4njty4cf0
支付宝访问这个网址应该会给返回客户端一个json:
{"u":"2088002349320780","c":"1611017806104339","a":"9.60","m":"增加10%做题量"}
m的内容应该是个人生成二维码的时候输入的文本内容,服务器没有检查特殊字符并转义,
所以传到客户端尝试解析的时候就崩掉了,这个锅应该服务端的程序员背好吧。
复现步骤:
1. 打开支付宝首页,点击右上角加号-收付款,然后点我要收款
2. 点击二维码下面的设置金额,随便填,然后点收款理由,在里面输入特殊字符如%即可
3. 别人扫你的二维码就会崩溃了,如图
但是奇怪的是我试了一下url的转移字符,只有%会有问题,&?'"什么的都没问题。。。。
【 在 icyfox 的大作中提到: 】
: 看起来使用了URL.encode, 然后没有得到 '%做题'后不知道要怎么处理
: 就崩了
:
好啊
【 在 dss886 (「意涵团团委书记」「信意涵,得offer」) 的大作中提到: 】
: 二维码的内容是https://qr.alipay.com/fkx03721e0ev1a4njty4cf0
: 支付宝访问这个网址应该会给返回客户端一个json:
: {"u":"2088002349320780","c":"1611017806104339","a":"9.60","m":"增加10%做题量"}
: ...................