在移动商务迅猛发展和数字支付激增的当下,将支付网关集成到任何电子商务应用中显得尤为重要。目前,许多应用都需要具备支付网关功能,以便用户能够在应用内进行交易,购买商品或服务。虽然许多应用都在使用支付网关,但在Android应用中集成它们却是一项挑战。为了简化这一过程,PayU提供了一项服务,使我们能够快速将支付选项集成到应用中,并处理所有支付方式。本文将探讨我们如何将支付网关集成到Android应用:-www.deekpay.com

在移动商务迅猛发展和数字支付激增的当下,将支付网关集成到任何电子商务应用中显得尤为重要。目前,许多应用都需要具备支付网关功能,以便用户能够在应用内进行交易,购买商品或服务。虽然许多应用都在使用支付网关,但在Android应用中集成它们却是一项挑战。为了简化这一过程,PayU提供了一项服务,使我们能够快速将支付选项集成到应用中,并处理所有支付方式。本文将探讨我们如何将支付网关集成到Android应用

关于PayU

PayU是印度最受欢迎的支付网关之一,被大小企业广泛使用,以在线销售商品并快速收款。PayU印度为大型企业以及SMB/SME提供支付网关服务。PayU的Android SDK相对易于使用,我们将在本文的后续部分详细介绍。

Android集成

在进行以下博客内容之前,请确保您已安装并配置以下内容:

– Java Development Kit版本1.6或更高版本

– Android SDK

– Git客户端

– Eclipse / Android Studio

– PayU支付网关的先决条件(密钥、盐)

PayU的SDK可以用来创建以下两种类型的解决方案:

1. 非无缝集成:如果您不想设计自己的UI,可以使用这个模块。

2. 无缝集成:在这种情况下,您需要创建自己的用户界面来捕获财务数据,例如信用卡号码和CVV。

使用SDK内置UI进行非无缝集成

获取所有必要参数

创建一个PaymentParams对象,并使用其默认设置方法将所有接收到的参数放入其中,然后设置paymentHash的哈希值。

“`java

PaymentParams mPaymentParams = new PaymentParams();

mPaymentParams.setKey(“gtKFFx”);

mPaymentParams.setAmount(“15.0”);

mPaymentParams.setProductInfo(“Tshirt”);

mPaymentParams.setFirstName(“Guru”);

mPaymentParams.setEmail(“[email protected]”);

mPaymentParams.setTxnId(“0123479543689”);

mPaymentParams.setSurl(“https://payu.herokuapp.com/success”);

mPaymentParams.setFurl(“https://payu.herokuapp.com/failure”);

mPaymentParams.setUdf1(“udf1l”);

mPaymentParams.setUdf2(“udf2”);

mPaymentParams.setUdf3(“udf3”);

mPaymentParams.setUdf4(“udf4”);

mPaymentParams.setUdf5(“udf5”);

mPaymentParams.setHash(“your payment hash”);

“`

如果您不使用udf1-5,则无需设置它们。如果您不希望使用它们,电子邮件和姓名可以留空。

您必须提供用户凭证,以便商店用户卡功能可以工作:

“`java

mPaymentParams.setUserCredentials(“your key:user id”);

“`

对于优惠,使用:

“`java

mPaymentParams.setOfferKey(“your_offer_key”);

“`

对于其他支付默认参数(如电话等),使用:

“`java

mPaymentParams.setPhone(“your number”);

“`

使用您自己的服务器获取正确的哈希值。创建一个PayuHashes对象,并使用给定的默认设置方法来设置相关哈希值。

“`java

mPaymentParams.setHash(payuHashes.getPaymentHash());

“`

创建一个新的Intent,以PayUBaseActivity为目标,并完成以下步骤。

“`java

intent.putExtra(PayuConstants.ENV, PayuConstants.PRODUCTION_ENV);

intent.putExtra(PayuConstants.PAYMENT_DEFAULT_PARAMS, mPaymentParams);

intent.putExtra(PayuConstants.PAYU_HASHES, payuHashes);

“`

为了实现一键支付:

“`java

// 启用一键支付,以MOBILE为存储哈希的选项

intent.putExtra(PayuConstants.STORE_ONE_CLICK_HASH, PayuConstants.STORE_ONE_CLICK_HASH_MOBILE);

“`

或者:

“`java

// 启用一键支付,以MERCHANT SERVER为存储哈希的选项

intent.putExtra(PayuConstants.STORE_ONE_CLICK_HASH, PayuConstants.STORE_ONE_CLICK_HASH_SERVER);

“`

或者:

“`java

// 禁用一键支付

intent.putExtra(PayuConstants.STORE_ONE_CLICK_HASH, PayuConstants.STORE_ONE_CLICK_HASH_NONE);

“`

启动活动,其余交由PayU SDK处理。

“`java

startActivity(intent);

“`

使用自己的UI进行无缝集成

我们将仅考虑信用卡和网银交易作为无缝集成的示例。此方法可用于连接一键支付卡、商店卡、现金卡和PayU支付。

无缝信用卡/借记卡支付集成

创建一个PaymentParams对象,并使用默认设置方法填充所有接收到的参数,就像非无缝样式一样,并设置Hash为paymentHash。

“`java

mPaymentParams.setCardNumber(cardNumber);

mPaymentParams.setCardName(cardName);

mPaymentParams.setNameOnCard(cardName);

mPaymentParams.setExpiryMonth(expiryMonth); // MM

mPaymentParams.setExpiryYear(expiryYear); // YYYY

mPaymentParams.setCvv(cvv);

“`

为了实现一键支付:

“`java

// 存储一键支付哈希,传递1

mPaymentParams.setEnableOneClickPayment(1);

“`

或者:

“`java

// 否则传递0,或者根本不调用该方法

mPaymentParams.setEnableOneClickPayment(0);

“`

使用上述类型为PostData的PostData,创建一个PaymentPostParams对象。设置环境(测试或生产),建立Intent,然后启动PaymentsActivity活动。

“`java

PostData postData = new PaymentPostParams(mPaymentParams, PayuConstants.CC).getPaymentPostParams();

if (postData.getCode() == PayuErrors.NO_ERROR) {

// 启动webview

PayuConfig payuConfig = new PayuConfig();

payuConfig.setEnvironment(PayuConstants.PRODUCTION_ENV);

payuConfig.setData(postData.getResult());

Intent intent = new Intent(this, PaymentsActivity.class);

intent.putExtra(PayuConstants.PAYU_CONFIG, payuConfig);

startActivityForResult(intent, PayuConstants.PAYU_REQUEST_CODE);

} else {

// 出现错误

Toast.makeText(this, postData.getResult(), Toast.LENGTH_LONG).show();

}

“`

无缝网银集成

创建一个PaymentParams对象,并使用默认设置方法填充所有接收到的参数,就像非无缝样式一样,并设置Hash为paymentHash。将选定银行的bankCode(字符串)添加到之前定义的mPaymentParams中,使用您的spinner/list view适配器。

“`java

mPaymentParams.setBankCode(bankCode);

“`

通过创建类型为PostData的PaymentPostParams对象来启动PaymentsActivity。

“`java

PostData postData = new PaymentPostParams(mPaymentParams, PayuConstants.NB).getPaymentPostParams();

if (postData.getCode() == PayuErrors.NO_ERROR){

// 启动webview

PayuConfig payuConfig = new PayuConfig();

payuConfig.setEnvironment(PayuConstants.PRODUCTION_ENV);

payuConfig.setData(postData.getResult());

Intent intent = new Intent(this, PaymentsActivity.class);

intent.putExtra(PayuConstants.PAYU_CONFIG, payuConfig);

startActivityForResult(intent, PayuConstants.PAYU_REQUEST_CODE);

} else {

// 出现错误

Toast.makeText(this, postData.getResult(), Toast.LENGTH_LONG).show();

}

“`

PayU将为您提供测试配置,以开始集成过程,包括测试商户账户和测试信用卡详情,以便您了解整个交易流程。然后,SDK代码必须集成到您的应用程序中。在测试完成后,您应该准备好将您的应用指向PayU生产服务器,进行一些实际交易。

测试凭证

要启用更多日志,开始使用测试密钥和盐(针对测试服务器)。请使用以下测试账户(仅用于测试目的):

– 密钥:ktKFFx

– 盐:bDwWELix

测试卡信息:

– 持卡人姓名:Shefali Singh

– 卡号:2355 6756 9902 6654

– CVV:098

– 有效期:11/2023

输出

由于我们使用的是测试凭证,因此无法进行支付。您必须在PayU仪表板中激活您的应用程序并生成新的密钥,才能使您的支付生效。

这就是PayU Android应用集成的入门内容。祝您的集成顺利!