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里面可以。那么,好奇心驱使我继续追查。也想过半路而费,这个棘手的问题,就是我的勋章。以后面试的时候,可以说了。

转载于:https://www.cnblogs.com/caoxinyu/p/10568570.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值