自己开发的app支付教程大全

移动支付已经成为了人们日常生活不可或缺的一部分,尤其是在COVID-19疫情期间,更是推动了无接触支付方式的普及。作为一名开发者,提供一款安全、快捷、方便的支付途径是我们应该优先考虑的问题。下面介绍我个人对于开发安卓app支付的一些原理和实践。

一、支付原理

1. 手机app支付的原理

移动支付的流程可分为四个阶段:前端、支付网关、银行系统和商户。其中前端是指消费者的手机app,用来发起支付请求;支付网关是支付机构提供的支付接口,连接前端和银行系统;银行系统作为支付清算方,完成账户的资金转移和记账功能;商户是从银行获得的结算账户,支付成功后对卖家进行结算。

2. 支付流程

支付流程分为两个阶段:预支付和确认支付。预支付主要分为以下几个步骤:

(1)用户用手机打开商户的app,选中商品进入支付页面;

(2)用户选择支付方式,例如微信支付或支付宝支付;

(3)前端app发起预支付请求到支付网关,支付网关返回prepay_id等支付资料;

(4)前端根据支付资料组装出支付请求,调起相应的支付应用;

(5)用户在支付应用中确认支付完成后,支付应用返回支付结果。

如果支付成功,支付网关会异步通知商户端支付成功,商户根据异步通知更新订单状态,并发起查询订单接口查询支付结果,扣款成功后完成订单;如果支付失败,商户端同样可以收到支付网关的通知,商户可以根据通知信息返回错误信息给用户,并撤销订单。

二、支付开发实践

1. 组织开发架构

我们首先需要创建一个android studio项目,添加支付宝SDK和微信SDK的库文件,依赖管理工具可选择Gradle(推荐)或Maven;其次,在项目的manifest文件中添加支付请求需要的权限,例如网络连接、读取手机存储等等;接着,我们需要从支付宝或微信开放平台获取应用ID和应用密钥,并在代码中对其进行配置。

2. 搭建支付模块

(1)支付宝支付

引入支付宝SDK 的实现流程如下:

(a) 添加依赖:

```

implementation 'com.alipay.sdk:alipay-sdk-java:4.8.75.ALL'

```

(b)配置AndroidMainfest.xml 权限,并在application 标签下添加AlipayPayActivity(用来接收支付结果回调)

```

// 添加AlipayPayActivity

android:name="com.alipay.sdk.app.AlipayResultActivity"

android:configChanges="orientation|keyboardHidden|navigation"

android:screenOrientation="behind"

android:theme="@android:style/Theme.Translucent.NoTitleBar" />

```

(c)实现支付逻辑,处理支付结果回调

```

public class AliPay {

/**

*支付宝支付业务

*

* @param orderStr

* 订单信息

* @param activity

* 拉起支付的Activity

* @param handler

* 处理支付结果的Handler

*/

public static void payV2(final Activity activity, final Handler handler, String orderStr) {

final Runnable payRunnable = new Runnable() {

@Override

public void run() {

PayTask alipay = new PayTask(activity);

Map result = alipay.payV2(orderStr, true);

Message msg = new Message();

msg.what = SDK_PAY_FLAG;

msg.obj = result;

handler.sendMessage(msg);

}

};

Thread payThread = new Thread(payRunnable);

payThread.start();

}

// 处理支付结果回调

public static void AliPayResultHandler(final AppCompatActivity activity, Map result) {

PayResult payResult = new PayResult(result);

// 判断支付状态

String resultStatus = payResult.getResultStatus();

if (TextUtils.equals(resultStatus, "9000")) {

Toast.makeText(activity, "支付成功", Toast.LENGTH_SHORT).show();

} else {

Toast.makeText(activity, "支付失败", Toast.LENGTH_SHORT).show();

}

}

}

```

(2)微信支付

引入微信SDK 的实现流程如下:

(a)添加依赖

```

compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'

```

(b)配置AndroidMainfest.xml 权限,并在WXPayEntryActivity(用来接收支付结果回调)

```

// 添加WXPayEntryActivity

android:name=".wxapi.WXPayEntryActivity"

android:exported="true"

android:launchMode="singleTop"

android:screenOrientation="portrait" />

```

(c)实现支付逻辑,处理支付结果回调

```

public class WXPay {

// 发起支付

public static boolean pay(Context context, PayReq request) {

IWXAPI api = WXAPIFactory.createWXAPI(context, request.appId);

api.registerApp(request.appId);

return api.sendReq(request);

}

// 处理支付回调

public static void WXPayResultHandler(final AppCompatActivity context, BaseResp resp) {

if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {

switch (resp.errCode) {

// 支付成功

case 0:

Toast.makeText(context, "支付成功", Toast.LENGTH_SHORT).show();

break;

// 失败

case -1:

Toast.makeText(context, "支付失败", Toast.LENGTH_SHORT).show();

break;

// 取消

case -2:

Toast.makeText(context, "支付已取消", Toast.LENGTH_SHORT).show();

break;

default:

break;

}

}

}

}

```

三、总结

开发手机app支付相对较为复杂,但是通过以上步骤,细致的代码实现和对接口的理解,我们就能开发出对用户友好、实用、安全的支付功能。支付功能成功实现后,须保障卖家和服务商的业务流程一致,完成支付交易。在进一步的优化和尝试中,我们能够加入更加智能和互联化的支付方式,使用户的生活更加便捷高效,并提高用户黏性。


相关知识:
自建app接入hns
HNS是基于区块链技术的去中心化域名系统,可以简单理解为是“分布式DNS”。在HNS系统中,每个域名都是一个独立的资产,可以进行交易、转账等操作,同时也可以在互联网上映射到特定的IP地址或其他服务。如果您想要将自己建立的App接入HNS,可以考虑以下几个步
2023-06-05
自建app商城
自建app商城需要考虑到如下几个关键步骤:1.确定商城的目标和功能你需要明确商城的定位,确定商城中需要的功能,比如商品展示、支付、物流、客服等等。2.购买主机、域名和SSL证书在搭建商城前,你需要购买虚拟主机、域名和SSL证书。虚拟主机可以用来存放商城的网
2023-06-05
自己做室内设计的app开发
室内设计是一个比较复杂的领域,需要许多专业知识和技能。像素可爱的家园、易居中国、齐家网等软件是目前比较受欢迎的室内设计软件,但自己开发一款室内设计软件也是非常有趣的事情。下面是自己开发一款室内设计软件的原理和详细介绍。一、软件功能介绍1.导入平面图平面图指
2023-06-05
自己做个外卖app盈利吗
做一个外卖app可以盈利,但需要具备一定的条件和策略。以下是一些实现盈利的可能途径:1. 平台佣金:外卖app通常向餐厅收取一定的佣金,一般为订单金额的10%-20%左右。当平台积累了足够多的餐厅和订单,佣金的收入也相应会增加。2. 广告收益:外卖app可
2023-06-05
自己如何开发一个简单的app
开发一个简单的App,需要考虑多方面的因素,从构思、设计、程序实现、测试到发布,每一个环节都需要认真思考和有效实践。本文将从App的构想、开发环境、开发工具、实现原理等方面进行详细介绍。一、构思阶段在构思阶段,需要明确App的目标、核心功能、使用场景和用户
2023-06-05
自己如何做一个知识管理app
要做一个知识管理app,需要考虑以下几个方面:1. 功能设想知识管理app的功能一般都包括以下几个方面:(1)收集:用户可以通过自己的笔记、书签、图片等方式将知识点输入到应用程序中。(2)整理:用户可以利用标签、文件夹等方式对已有的知识点进行分类整理。(3
2023-06-05
自己可以制作手机app软件吗
制作手机app软件是一项需要具备一定技术水平的工作,需要有一定的编程基础和计算机知识。在这篇文章中,我们将介绍一些制作手机app软件的原理和步骤。一、选择开发平台在制作手机app软件之前,我们需要选择一种适合自己的开发平台。目前市场上有很多种开发平台可供选
2023-06-05
自己制作锁屏的app有哪些
制作锁屏的app可以为我们的手机增加一些新颖的功能和个性化的体验,同时也可以使我们的手机更加安全。以下是制作锁屏的app的几种方法:1. 使用Android提供的锁屏模式Android提供了多种锁屏方式,比如图案锁、密码锁、指纹锁等。我们可以使用Andro
2023-06-05
怎样快速制作属于自己的app
制作属于自己的App,一般有两种途径:自己编写代码开发App,或者使用在线App制作平台。下面将会详细介绍这两种方法。第一种方法,自己编写代码开发App。这种方法需要一定的编程知识和技能,需要计算机编程方面的知识、语言、工具等等。为了开发一个完整的App,
2023-06-05
开发app自学书籍推荐
开发应用程序(APP)是当前最热门的技能之一,成为了IT技术人员的必备技能之一。但是,如果你想要自学开发App的话,可能会感觉力不从心,因为这样的知识领域非常广泛,涉及到许多的专业知识,比如UI设计、编程语言、框架等等。为了更好地帮助自学者,以下是几本非常
2023-05-30
晋中自动量化交易app开发报价
晋中自动量化交易app可以理解为是一种能够实现自动化交易的手机应用软件,它适用于投资者、交易员等各类用户,通过预设一定的交易策略和参数来实现自动化交易。晋中自动量化交易app的开发需要专业的技术人员协作完成,其涉及技术点较多,包括但不限于交易策略、交易规则
2023-05-30
不用懂技术自己就能制作app
现如今,移动互联网已经成为人们日常生活中必不可少的一部分。随着智能手机和移动设备的普及,APP已经成为人们获取信息、购物、社交和娱乐的主要方式。然而,对于许多想要打造自己的APP的人来说,缺乏技术和开发经验往往成为了他们的难点。但是,我们可以依靠一些现有的
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1