Android 支付宝H5 没有回调
今天测试反馈问题,说,手机上没有安装支付宝的,调用支付宝支付之后,没有回调。不提示成功也不提示失败。
我自己试了半天也都是没有问题 。后来终于可以试出来了。
发现原来是,清单里面注册的Activity 不是在我调用的进程里面。
例子:
<activity
android:name="com.alipay.sdk.app.H5PayActivity"
android:configChanges="orientation|keyboardHidden|navigation"
android:exported="false"
android:screenOrientation="portrait" />
因为我们的插件是在android:process=”@string/plug_process_name” 这个进程里面,所以,吊起来的H5是宿主的H5页面。(宿主程序也有自己的支付宝),所以,我们收不到结果。
改成:
<activity
android:name="com.alipay.sdk.app.H5PayActivity"
android:configChanges="orientation|keyboardHidden|navigation"
android:exported="false"
android:process="@string/plug_process_name"
android:screenOrientation="portrait" />
就可以了。
看下堆栈吧:
不可以的情况:
Stack #1:
Task id #29
* TaskRecord{42fcded0 #29 A=com.letv.android.client U=0 sz=5}
numActivities=5 rootWasReset=true userId=0 mTaskType=0 numFullscreen=3 mOnTopOfHome=true
affinity=com.letv.android.client
intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.letv.android.client/.activity.SplashActivity}
realActivity=com.letv.android.client/.activity.SplashActivity
Activities=[ActivityRecord{4238ec30 u0 com.letv.android.client/.activity.MainActivity t29}, ActivityRecord{42af7578 u0 com.letv.android.client/com.zhangyue.iReader.main.MainActivity t29}, ActivityRecord{42b50510 u0 com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityOnline t29}, ActivityRecord{42cd2288 u0 com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityFee t29}, ActivityRecord{4240a970 u0 com.letv.android.client/com.alipay.sdk.app.H5PayActivity t29}]
askedCompatMode=false
lastThumbnail=null lastDescription=null
lastActiveTime=24055831 (inactive for 97s)
* Hist #4: ActivityRecord{4240a970 u0 com.letv.android.client/com.alipay.sdk.app.H5PayActivity t29}
packageName=com.letv.android.client processName=com.letv.android.client
launchedFromUid=10452 launchedFromPackage=com.letv.android.client userId=0
app=ProcessRecord{42c9ce60 23360:com.letv.android.client/u0a452}
Intent { cmp=com.letv.android.client/com.alipay.sdk.app.H5PayActivity (has extras) }
frontOfTask=false task=TaskRecord{42fcded0 #29 A=com.letv.android.client U=0 sz=5}
taskAffinity=com.letv.android.client
realActivity=com.letv.android.client/com.alipay.sdk.app.H5PayActivity
baseDir=/data/app/com.letv.android.client-1.apk
dataDir=/data/data/com.letv.android.client
stateNotNeeded=false componentSpecified=true mActivityType=0
compat={320dpi} labelRes=0x7f0a016b icon=0x7f0206d1 theme=0x7f0d0222
config={1.0 ?mcc?mnc zh_CN ldltr sw360dp w360dp h615dp 320dpi nrml long port finger -keyb/v/h -nav/h s.5 themeChanged=0 themeChangedFlags=0}
launchFailed=false launchCount=0 lastLaunchTime=-3m37s266ms
haveState=true icicle=Bundle[mParcelledData.dataSize=204]
state=STOPPED stopped=true delayedResume=false finishing=false
keysPaused=false inHistory=true visible=true sleeping=true idle=true
fullscreen=true noDisplay=false immersive=false launchMode=0
frozenBeforeDestroy=false thumbnailNeeded=false forceNewConfig=false
mActivityType=APPLICATION_ACTIVITY_TYPE
thumbHolder: 42fcded0 bm=null desc=null
waitingVisible=false nowVisible=true lastVisibleTime=-3m36s626ms
* Hist #3: ActivityRecord{42cd2288 u0 com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityFee t29}
packageName=com.letv.android.client processName=com.chaozh.iReader.plug.sdk
launchedFromUid=10452 launchedFromPackage=com.letv.android.client userId=0
app=ProcessRecord{42dab1f0 23547:com.chaozh.iReader.plug.sdk/u0a452}
Intent { cmp=com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityFee }
frontOfTask=false task=TaskRecord{42fcded0 #29 A=com.letv.android.client U=0 sz=5}
taskAffinity=com.letv.android.client
realActivity=com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityFee
baseDir=/data/app/com.letv.android.client-1.apk
dataDir=/data/data/com.letv.android.client
stateNotNeeded=false componentSpecified=true mActivityType=0
compat={320dpi} labelRes=0x7f0a016b icon=0x7f0206d1 theme=0x1030010
config={1.0 ?mcc?mnc zh_CN ldltr sw360dp w360dp h615dp 320dpi nrml long port finger -keyb/v/h -nav/h s.5 themeChanged=0 themeChangedFlags=0}
resultTo=ActivityRecord{42b50510 u0 com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityOnline t29} resultWho=null resultCode=4096
launchFailed=false launchCount=0 lastLaunchTime=-4m25s346ms
haveState=true icicle=Bundle[mParcelledData.dataSize=492]
state=STOPPED stopped=true delayedResume=false finishing=false
keysPaused=false inHistory=true visible=false sleeping=true idle=true
fullscreen=false noDisplay=false immersive=false launchMode=0
frozenBeforeDestroy=false thumbnailNeeded=false forceNewConfig=false
mActivityType=APPLICATION_ACTIVITY_TYPE
thumbHolder: 42fcded0 bm=null desc=null
waitingVisible=false nowVisible=false lastVisibleTime=-3m39s651ms
可以的情况:
Stack #1:
Task id #31
* TaskRecord{4332a798 #31 A=com.letv.android.client U=0 sz=4}
numActivities=4 rootWasReset=true userId=0 mTaskType=0 numFullscreen=2 mOnTopOfHome=true
affinity=com.letv.android.client
intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.letv.android.client/.activity.SplashActivity}
realActivity=com.letv.android.client/.activity.SplashActivity
Activities=[ActivityRecord{42409390 u0 com.letv.android.client/.activity.MainActivity t31}, ActivityRecord{423669a8 u0 com.letv.android.client/com.zhangyue.iReader.main.MainActivity t31}, ActivityRecord{4244f600 u0 com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityOnline t31}, ActivityRecord{4251c870 u0 com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityFee t31}]
askedCompatMode=false
lastThumbnail=null lastDescription=null
lastActiveTime=24516084 (inactive for 19s)
* Hist #3: ActivityRecord{4251c870 u0 com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityFee t31}
packageName=com.letv.android.client processName=com.chaozh.iReader.plug.sdk
launchedFromUid=10453 launchedFromPackage=com.letv.android.client userId=0
app=ProcessRecord{42c65938 26161:com.chaozh.iReader.plug.sdk/u0a453}
Intent { cmp=com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityFee }
frontOfTask=false task=TaskRecord{4332a798 #31 A=com.letv.android.client U=0 sz=4}
taskAffinity=com.letv.android.client
realActivity=com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityFee
baseDir=/data/app/com.letv.android.client-1.apk
dataDir=/data/data/com.letv.android.client
stateNotNeeded=false componentSpecified=true mActivityType=0
compat={320dpi} labelRes=0x7f0a016b icon=0x7f0206d1 theme=0x1030010
config={1.0 ?mcc?mnc zh_CN ldltr sw360dp w360dp h615dp 320dpi nrml long port finger -keyb/v/h -nav/h s.5 themeChanged=0 themeChangedFlags=0}
resultTo=ActivityRecord{4244f600 u0 com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityOnline t31} resultWho=null resultCode=4096
launchFailed=false launchCount=1 lastLaunchTime=-19s397ms
haveState=false icicle=null
state=RESUMED stopped=false delayedResume=false finishing=false
keysPaused=false inHistory=true visible=true sleeping=false idle=true
fullscreen=false noDisplay=false immersive=false launchMode=0
frozenBeforeDestroy=false thumbnailNeeded=false forceNewConfig=false
mActivityType=APPLICATION_ACTIVITY_TYPE
thumbHolder: 4332a798 bm=null desc=null
waitingVisible=false nowVisible=true lastVisibleTime=-19s230ms
* Hist #2: ActivityRecord{4244f600 u0 com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityOnline t31}
packageName=com.letv.android.client processName=com.chaozh.iReader.plug.sdk
launchedFromUid=10453 launchedFromPackage=com.letv.android.client userId=0
app=ProcessRecord{42c65938 26161:com.chaozh.iReader.plug.sdk/u0a453}
Intent { cmp=com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityOnline (has extras) }
frontOfTask=false task=TaskRecord{4332a798 #31 A=com.letv.android.client U=0 sz=4}
taskAffinity=com.letv.android.client
realActivity=com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityOnline
baseDir=/data/app/com.letv.android.client-1.apk
dataDir=/data/data/com.letv.android.client
stateNotNeeded=false componentSpecified=true mActivityType=0
compat={320dpi} labelRes=0x7f0a016b icon=0x7f0206d1 theme=0x7f0d016d
config={1.0 ?mcc?mnc zh_CN ldltr sw360dp w360dp h615dp 320dpi nrml long port finger -keyb/v/h -nav/h s.5 themeChanged=0 themeChangedFlags=0}
resultTo=ActivityRecord{423669a8 u0 com.letv.android.client/com.zhangyue.iReader.main.MainActivity t31} resultWho=null resultCode=4608
launchFailed=false launchCount=0 lastLaunchTime=-22s201ms
haveState=true icicle=Bundle[mParcelledData.dataSize=432]
state=STOPPED stopped=true delayedResume=false finishing=false
keysPaused=false inHistory=true visible=true sleeping=false idle=true
fullscreen=false noDisplay=false immersive=false launchMode=0
frozenBeforeDestroy=false thumbnailNeeded=false forceNewConfig=false
mActivityType=APPLICATION_ACTIVITY_TYPE
thumbHolder: 4332a798 bm=null desc=null
waitingVisible=false nowVisible=true lastVisibleTime=-22s89ms
自己搞了一天的时间。当然,我查到是收不到支付宝的回调,然后不再继续追查为什么收不到回调。说是支付宝的问题。但是,当我看到,自己的demo里面可以。那么,好奇心驱使我继续追查。也想过半路而费,这个棘手的问题,就是我的勋章。以后面试的时候,可以说了。
Android 支付宝H5 没有回调的更多相关文章
- IOS 支付宝、微信回调传值给H5网页
这里用是的苹果原生和JS的交互 .有不明白JavaScriptCore框架的可以去网上搜索下这方面的资料很多废话不多说直接上代码 @protocol JSContextDelegate <JSE ...
- quick-cocos2d-x 实现在lua里面完成android支付宝的接入
quick-cocos2d-x 实现在lua里面完成android支付宝的接入 一.支付宝注册是很麻烦的一个过程,本文就不解释了,想了解的去官网看下注册流程.然后下载他们的sdk-WS_SECURE_ ...
- Android与H5交互(java与js的交互)
一.理论概述 1.js调用java方法 直接调用WebView的该方法就可以添加接口了,不过先要启动交互 // 启用javascript mWebView.getSettings().setJavaS ...
- android支付宝app支付(原生态)-包括android前端与java后台
本文讲解了 android开发的原生态app集成了支付宝支付, 还提供了java后台服务器处理支付宝支付的加密代码, app前端与java后台服务器使用json数据格式交互信息,java后台服务主要用 ...
- Android与H5交互 原理与对比
原文: https://www.jianshu.com/p/345f4d8a5cfa 1.Android调用JS的方法有2种: (1)通过WebView的loadUrl() // 调用js中的函数: ...
- 支付宝H5、APP支付服务端的区别(php)
php支付宝H5和APP支付1.准备工作需要前往 蚂蚁金服开放平台申请https://openhome.alipay.com/developmentDocument.htm 2.大致流程1.用户添加商 ...
- (转载)Android支付宝支付封装代码
Android支付宝支付封装代码 投稿:lijiao 字体:[增加 减小] 类型:转载 时间:2015-12-22我要评论 这篇文章主要介绍了Android支付宝支付封装代码,Android支付的时候 ...
- Android中的接口回调技术
Android中的接口回调技术有很多应用的场景,最常见的:Activity(人机交互的端口)的UI界面中定义了Button,点击该Button时,执行某个逻辑. 下面参见上述执行的模型,讲述James ...
- JAVA回调函数ANDROID中典型的回调地方
在计算机中回调函数是指通过函数参数传递到其他代码类的,某一块可执行代码的引用,这以设计允许了底层代码调用者在高层定义的子程序. 在JAVA里面我们使用接口的方式来实现函数的回调. 回调的通俗就是:程序 ...
随机推荐
- WiFi调试手机
转自http://blog.csdn.net/Yejianyun1/article/details/55511726 使用场景: 1.多设备执行测试用例 2.数据线无法满足使用 电脑与手机的网络需要 ...
- 关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)(转)
这篇文章给大家介绍关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)的相关资料,还给大家收集些关于MySQL会出现中文乱码原因常见的几点,小伙伴快来看看吧 最近两天做项目总是被乱码问题困 ...
- LDAP 在ubuntu14.04下的安装配置install and configure
https://help.ubuntu.com/lts/serverguide/openldap-server.html if error occurs in reinstall, try this: ...
- PHP:__get()、__set()、__isset()、__unset()、__call()、__callStatic()六个魔术方法
哎呀呀,今天小仓鼠学到了魔术方法,简称魔法,哈哈哈哈,神经病啊~ 平时在面试的时候,也会遇到问魔术方法有哪些的问题哦!今天我们来了解一下下~ 1.__get() 形式: __get($objName) ...
- 如何使用事务码SMICM分析ABAP代码发起的HTTP请求的错误ICM_HTTP_SSL_PEER_CERT_UNTRUSTED
当我用CL_HTTP_CLIENT往一个外网的url发请求时,遇到错误:ICM_HTTP_SSL_PEER_CERT_UNTRUSTED 错误是从这段ABAP代码里抛出来的: CALL METHOD ...
- php5.3 yum安装升级版本到 php5.6
centOS系统下如何将php升级到5.6,之前通过yum来安装lamp环境,直接升级的话,提示没有更新包,也就是说默认情况下php5.3.3是最新 1.查看已经安装的php版本号 键入下面代码: ...
- matlab所需插件
1
- 在matlab中查看变量的数据类型
>> x = x = >> class(x) ans = double
- CPP-STL:用vector保存对象时保存指针的优点, 以及reserve的使用(转)
代码1 #include <vector> #include <stdio.h> class A { public: A() { printf("A()/n" ...
- P2096 最佳旅游线路
最大字段和加贪心 算长了个见识吧 #include<iostream> #include<cstdio> #include<algorithm> using nam ...