Eupotia
Eupotia
  • 发布:2024-10-12 17:24
  • 更新:2024-11-21 16:01
  • 阅读:109

离线打包集成PayPal无法唤起支付。

分类:uni-app

按照集成教程,本地生成的基座无法唤起PayPal支付界面,云打包生成的可以使用。

我不清楚是哪一步出问题了还是我哪个配置配错鸟,有点疑问的是 %YOUR-CUSTOM-SCHEME% 的配置,离线打包提示的内容这个链接已经被PayPal强制跳转到另一个页面了,不知道是否跟这个有关。

PayPal集成

PayPal之前关于scheme的说明

scheme配置的就是推荐的包名+://paypalpay ,与PayPal后台配置一致,云打包基座正常唤起和支付,所以应该是我离线生成的基座有问题,scheme配置了两块:一个是主入口,另一个就是PayPal那块

        <activity  
            android:name="io.dcloud.PandoraEntryActivity"  
            android:launchMode="singleTask"  
            android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale|keyboard|smallestScreenSize|screenLayout|screenSize|uiMode"  
            android:hardwareAccelerated="true"  
            android:permission="com.miui.securitycenter.permission.AppPermissionsEditor"  
            android:screenOrientation="user"  
            android:theme="@style/DCloudTheme"  
            android:windowSoftInputMode="adjustResize">  
            <intent-filter>  
                <category android:name="android.intent.category.DEFAULT" />  
                <category android:name="android.intent.category.BROWSABLE" />  
                <action android:name="android.intent.action.VIEW" />  
                <data android:scheme="这是我的scheme配置为包名了,com.mall.test" />  
            </intent-filter>  
        </activity>  

        <!--    Paypal支付配置    -->  

        <activity  
            android:name="com.paypal.openid.RedirectUriReceiverActivity"  
            android:excludeFromRecents="true"  
            android:exported="true"  
            android:theme="@style/PYPLAppTheme">  
            <intent-filter>  
                <action android:name="android.intent.action.VIEW" />  
                <category android:name="android.intent.category.DEFAULT" />  
                <category android:name="android.intent.category.BROWSABLE" />  
                <data  
                    android:host="paypalpay"  
                    android:scheme="com.mall.test" />  
            </intent-filter>  
        </activity>  

        <activity  
            android:name="com.paypal.pyplcheckout.home.view.activities.PYPLInitiateCheckoutActivity"  
            android:exported="true"  
            android:theme="@style/AppFullScreenTheme">  
            <intent-filter android:autoVerify="true">  
                <action android:name="android.intent.action.VIEW" />  
                <category android:name="android.intent.category.DEFAULT" />  
                <category android:name="android.intent.category.BROWSABLE" />  
                <data  
                    android:host="paypalxo"  
                    android:scheme="com.mall.test" />  
            </intent-filter>  
        </activity>  

        <meta-data tools:replace="android:value" android:name="returnUrl" android:value="com.mall.test://paypalpay"/>  

有无离线集成过这个PayPal的兄弟指点一二?感激不尽

2024-10-12 17:24 负责人:无 分享
已邀请:
l***@topbs.co

l***@topbs.co

一样的问题 怀疑sdk是坏的

  • Eupotia (作者)

    不清楚了,最后为了实现业务,直接在app跳转到浏览器打开PayPal支付页面了

    2024-11-21 16:01

Eupotia

Eupotia (作者) - 道阻且长,行则将至。

离线打包集成失败了,找不到问题,后面解决方法是直接跳转到浏览器打开PayPal的页面进行支付。

我这里的情况是原本就有一个PayPal 的 H5支付方法,所以在app的时候改了redirectUrl 的值,改为app自定义的SCHEMES,然后提交给后台。这个支付应该还是PayPal的H5支付的方法。后台会返回一个PayPal支付的地址,直接在app端打开浏览器跳转到这个PayPal的页面中进行支付。如果SCHEMES配置正确,那么支付完成或者在页面上点击取消支付并返回 的时候是可以自动返回到app的

let redirectUrl = ''  
// #ifdef H5  
redirectUrl = import.meta.env.VITE_APP_H5_DOMAIN + '/payment/payment'  
// #endif  

// #ifdef APP-PLUS  
redirectUrl = import.meta.env.VITE_APP_URL_SCHEMES + '://paypalpay'  
// #endif  

// 请求支付回调  
http.request({  
  url: 'xxx',  
  method: 'POST',  
  data: {  
    redirectUrl,  
    ...其他参数  
  }  
}).then((res)=> {  
  // #ifdef H5  
  window.location.replace(res)  
  // #endif  

  // #ifdef APP-PLUS  
  plus.runtime.openURL(res)  
  // #endif  
})

要回复问题请先登录注册