Android PayPal 支付集成

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/q4878802/article/details/88060894

Android PayPal 支付集成

PayPal本身自己有移动端的SDK,但是已经不推荐使用了,我也自己集成了一下,还有一些问题存在,在这里就不做介绍了,官方推荐使用BraintreeSDK来集成,Braintree支持很多种支付方式,也有很多调用方式,我也尝试了很多,为了大家少走弯路,直接看这篇文档就可以了:

集成文档:https://developer.paypal.com/docs/accept-payments/express-checkout/ec-braintree-sdk/client-side/android/v2/

首先介绍一下,Braintree是需要申请资质的,但是似乎不是那么好申请,因为我们公司最后就没有申请下来,他SDK里面好多支付方式,都是需要在申请通过了之后才可以使用.

没有Braintree账号,也没有关系,使用依据上面的文档,我们使用PayPal还是可以的。

1. 添加依赖

dependencies {
    ……
    implementation 'com.braintreepayments.api:braintree:3.0.0'
}

2. 配置清单文件

<activity android:name="com.braintreepayments.api.BraintreeBrowserSwitchActivity"
    android:launchMode="singleTask">
    <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:scheme="${applicationId}.braintree" />
    </intent-filter>
</activity>

3. 获取支付token

通过后台接口下单,获取支付token

4. 初始化

try {
    mBraintreeFragment = BraintreeFragment.newInstance(activity, clientToken)
	 // 支付完成监听
    mBraintreeFragment?.addListener(mPaymentMethodNonceCreatedListener)
    // 取消监听
    mBraintreeFragment?.addListener(mBraintreeCancelListener)
    // 错误监听
    mBraintreeFragment?.addListener(mBraintreeErrorListener)
} catch (e: InvalidArgumentException) {
    e.printStackTrace()
}

5. 调起支付

val request = PayPalRequest("订单金额")
        .currencyCode("货币类型")
        .intent(PayPalRequest.INTENT_SALE)
PayPal.requestOneTimePayment(mBraintreeFragment, request)

这里有一个设置intent,有三个可选项:PayPalRequest.INTENT_AUTHORIZEPayPalRequest.INTENT_SALEPayPalRequest.INTENT_ORDER。默认是PayPalRequest.INTENT_AUTHORIZE,表示预授权,并不是立即到账。如果想要支付立即到账,需要设置为PayPalRequest.INTENT_SALE

支付成功后,可以在mPaymentMethodNonceCreatedListener接口中取得nonce订单号等信息,验证支付结果。

猜你喜欢

转载自blog.csdn.net/q4878802/article/details/88060894