您现在的位置:首页 > PayPal教程 > 正文
在 Android 应用程序中创建 PayPal/信用卡付款。
百度       2024-07-29 10:09:43       阅读:
在本教程中,我们将学习如何设置PayPal Android SDK以通过 PayPal 付款或信用卡购买来处理简单付款。在本示例结束时,您应该在应用程序中有一个简单的按钮,当用户单击该按钮时,它会将用户转发到 PayPal 以确认设置付款,然后将用户返回到应用程序并记录付款确认。


此示例的完整应用程序代码可在PayPal 开发者 Github 存储库中找到。

让我们开始吧。

第一步是获取 SDK 并将其添加到你的项目中。我们像这样添加对 build.gradle 依赖项的引用:


依赖项 { 编译'com.paypal.sdk:paypal-android-sdk:2.14.1' ... }


现在我们转到我们的 MainActivity.java 文件(或您想要添加 PayPal 按钮集成的任何位置),并config为我们的客户端 ID 和我们将要使用的环境(沙箱)添加一个对象。


private static PayPalConfiguration config = new PayPalConfiguration() 
    .environment(PayPalConfiguration.ENVIRONMENT_SANDBOX) 
    .clientId("您的客户端ID");
现在我们将在我们的onCreate(...)方法中创建一个按钮,一旦点击,我们就可以处理通过 PayPal 付款。



@Override 
protected void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main);
final Button button = (Button) findViewById(R.id.paypal_button); 
}

我们现在需要定义该按钮的功能。在您的 res > layout > main XML 文件中,您可以为按钮添加以下定义,
它将定义带有 paypal_button ID 的按钮的文本和 onClick 处理程序。
<按钮 android:id="@+id/paypal_button" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:text="@string/paypal_button" 
    android:onClick="beginPayment" />
单击后,按钮将调用beginPayment(...)方法。然后,我们可以将按钮的文本添加到 strings.xml 文件中,
如下所示:使用 PayPal 付款按钮到位后,我们现在必须处理按钮点击以开始付款处理。在之前的onCreate(...)方法
下方添加以下beginPayment(...)方法。
公共无效开始支付(查看视图){
    意图服务配置=新意图(此,PayPalService.class);
    服务配置.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION,配置);
    启动服务(服务配置);
PayPalPayment 付款 = 新 PayPalPayment(新 BigDecimal(“5.65”),
        “USD”,“我的超棒商品”,PayPalPayment.PAYMENT_INTENT_SALE);
Intent paymentConfig = new Intent(this, PaymentActivity.class); 
    paymentConfig.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config); 
    paymentConfig.putExtra(PaymentActivity.EXTRA_PAYMENT, payment); 
    startActivityForResult(paymentConfig, 0); 
}

我们在这里所做的是首先设置服务意图 ( serviceConfig ),使用我们之前为客户端 ID 和沙盒环境定义的配置。
然后我们指定我们要处理的付款对象。
为了便于说明,我们设置了静态价格、货币和说明。在最终的应用中,这些值应该从用户在应用中尝试购买的商品中获取。
最后,我们设置 paymentConfig ,
添加我们之前定义的配置和付款对象,然后启动活动。
此时,用户将看到 PayPal 登录和付款屏幕,允许他们选择使用 PayPal 还是信用卡付款
(通过手动输入或 card.io(如果摄像头可用))。
该屏幕将如下所示:


完成后,我们需要准备好一个处理程序,用于 PayPal 在确认付款或取消后将用户转发回应用程序。
为此,让我们重写onActivityResult(...) 。
@Override 
protected void onActivityResult (int requestCode, int resultCode, Intent data){ 
    if (resultCode == Activity.RESULT_OK){ 
        PaymentConfirmation confirmed = data.getParcelableExtra( 
            PaymentActivity.EXTRA_RESULT_CONFIRMATION ); 
        if (confirm != null ){ 
            try { 
                Log.i("sampleapp", confirmed.toJSONObject().toString(4));
// TODO:向你的服务器发送“确认”以供验证
} catch (JSONException e) { 
                Log.e("sampleapp", "无确认数据: ", e); 
            } 
        } 
    } else if (resultCode == Activity.RESULT_CANCELED) { 
        Log.i("sampleapp", "用户已取消。"); 
    } else if (resultCode == PaymentActivity.RESULT_EXTRAS_INVALID) { 
        Log.i("sampleapp", "无效付款/配置集"); 
    } 
}

在onActivityResult(...)方法中,我们检查返回的resultCode是否为 RESULT_OK(用户确认付款)、
RESULT_CANCELED(用户取消付款)或 RESULT_EXTRAS_INVALID(存在配置问题)。如果确认有效,我们将获取从付款返回的对象,
并在此示例中记录它。返回给我们的内容应类似于以下内容:
{ 
    “客户端”:{ 
        “环境”:“沙盒”,
        “paypal_sdk_version”:“2.14.1”,
        “平台”:“Android”,
        “product_name”:“PayPal-Android-SDK” 
    },
    “响应”:{ 
        “create_time”:“2016-05-02T15:33:43Z”,
        “id”:“PAY-0PG63447RB821630KK1TXGTY”,
        “意图”:“销售”,
        “状态”:“已批准” 
    },
    “响应类型”:“付款” 
}
如果我们查看响应对象,我们可以看到状态为approved ,这意味着付款已确认。
此时,该对象应发送到您的服务器以确认付款确实已完成。
有关这些步骤的更多信息,请参阅这些文档。
我们的最后一步是在onDestroy(...)中进行清理。
@Override 
public void onDestroy(){ 
    stopService(new Intent(this,PayPalService.class));
    super.onDestroy();
}
这就是全部内容。在此示例中,我们创建了一个简单的按钮来处理使用 PayPal 或信用卡的付款。
从这一点开始,您可以按照以下几个步骤来扩展此示例:
该方法根据用户的产品选择动态地提取支付信息beginPayment(...)。

将付款确认发送到您的服务器并验证付款是否确实完成。

处理应用程序内的错误和取消用户案例。

发表评论(0)
姓名 *
评论内容 *
验证码 *图片看不清?点击重新得到验证码