自己开发的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
自考英语二是许多自考学生必须要通过的一门课程,其中阅读理解部分的难度较高,需要进行大量的练习和积累。为了帮助自考学生更好地备考英语二,推出了许多自考英语二做题app。自考英语二做题app是一款专门为自考学生设计的移动端应用程序,用于提高自考学生的英语阅读理
2023-06-05
自己做搜索app
在现代生活中,搜索引擎已经成为人们获取信息的重要途径之一。而作为搜索引擎的一种形式,搜索app不仅能对用户提供个性化的服务,还能同时为开发者和营销者提供巨大的商机。如果你有着一定的编程经验并且想做一个搜索app,那么本文将为你介绍一些大致的原理和步骤。一、
2023-06-05
自己做书app
做一个书籍类的app,大致需要以下几个模块:1. 主界面。包括登录注册、分类、搜索、推荐、排行等功能。2. 个人中心。用户注册后,可以进入个人中心,查看个人信息、购买历史、收藏夹、阅读记录等。3. 书籍展示。用户可以在主界面中浏览书籍,点击书籍可以查看书籍
2023-06-05
自己做一款app多少钱
自己做一款APP需要考虑多方面的因素,如设计、开发、测试、发布等等。不同的APP类型和规模,需求和功能也不尽相同,所以造价也会有所不同。在这里我将简要介绍一下APP开发的原理和大致费用。1. APP开发原理APP开发一般分为前端设计和后端开发两个阶段,其中
2023-06-05
自媒体做得最好的app
自媒体是一种新兴的媒体模式,它是指自主创作并自主发布的内容,同时通过互联网平台传播和推广。可以说,自媒体是一种强调个性、自由和平等的传媒模式。而在自媒体领域,有一些app非常受欢迎,下面就为大家详细介绍一下自媒体做得最好的app。一、微信公众号作为国内最大
2023-06-05
自己开发自己用的安卓app
开发自己用的安卓APP,其实并不需要有太高的技术门槛。只要你会一些基本的编程语言,就可以动手尝试开发一个简单的APP,以便更好地方便自己的日常生活。下面,我们就来介绍一下如何开发自己使用的安卓APP。一、确定需求和功能在开发自己的安卓APP之前,首先需要明
2023-06-05
自己制作记事本app
制作记事本App并不是一件十分困难的事情,只需要一些基础的编程知识和对App开发的了解,就可以开始制作一个属于自己的App了。下面将介绍一下制作记事本App的原理和步骤。首先,我们需要选择一种App开发工具,例如Android Studio、Xcode等,
2023-06-05
中文自建app软件
随着移动互联网的不断发展,自建APP已经成为一种越来越受欢迎的趋势。那么,什么是自建APP呢?自建APP就是指根据自己的需要和目的,使用现有的技术和工具,自己创建一个可以在移动设备上使用的应用程序。下面将对中文自建APP软件的原理和详细介绍进行阐述。一、中
2023-06-05
怎样做销售自己产品的app
随着移动互联网时代的推进,越来越多的企业开始意识到要将自己的销售业务转移到移动端。为此,许多企业开始使用销售自己产品的App,以便更好地将自己的产品销售给目标客户,并吸引更多的用户。那么,如何做销售自己产品的App呢?本文将从以下几个方面进行详细介绍。一、
2023-06-05
苹果app编程开发自学能学会吗
苹果App编程开发是现代iOS应用程序设计的核心。在iOS App Store上发布一个成功的应用程序是开发人员的梦想,但要实现这个目标需要付出大量的努力和时间。在这篇文章中,我们将探讨苹果App编程开发的原理和详细介绍,以帮助那些新手入门。苹果App编程
2023-05-30
普通人可以自己直接制作app吗
制作一个完整的应用程序通常需要编程知识和软件开发经验。但是,对于那些没有编程经验的普通人来说,还有一些工具和平台可以帮助他们轻松地创建基本的应用程序。下面将介绍一些常用的方法以及实现原理:一、应用程序制作工具1.1 应用程序制作软件直接使用应用程序制作软件
2023-05-30
android开发的app开机自启动
在 Android 系统中,开机自启动指的是在系统启动时自动运行一个应用程序。这种自启动方式可以让应用程序更加贴近用户的日常使用,提高用户体验。本文将介绍 Android 应用程序开机自启动的原理和实现方式。1. 原理Android 系统在启动时会自动执行
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1