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

  • 相关阅读:
    mysql leetcode 1445. 苹果和桔子 分组求差值
    前后端分离的理解
    mysql leetcode 178. 分数排名 自定义排名序号列 1,2,3
    mysql 距离今日,过去一年/一个月/一天 表达式
    mysql leetcode 1280. 学生们参加各科测试的次数 解题思路 一步一步来
    mysql leetcode 1435. 制作会话柱状图 解题思路 一步一步来
    leetcode 刷题笔记 寻找数组的中心索引 二分法查找
    mysql case when 理解和应用
    三角函数
    冒泡排序,选择排序,插入排序
  • 原文地址:https://www.cnblogs.com/caoxinyu/p/10568570.html
Copyright © 2020-2023  润新知