自己开发的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需要掌握的核心原理主要有以下几个:1.编程语言:程序
2023-06-05
自己做题自己答题的app
自己做题自己答题的app是一种基于移动设备的教育工具,它可以帮助学生自主学习,提高学习效率。该app的原理比较简单,在设计上它主要分为两部分。第一部分是做题环节,学生可以在这里选择相应的题目进行练习。这些题目可以是自己编写或从网络上找到的题库。第二部分是答
2023-06-05
自己做线上家教用什么app
随着互联网技术的不断发展,越来越多的人开始选择线上家教来提高自己的学习水平。线上家教不仅方便快捷,还可以在家里轻松进行,大大节省了时间和精力。那么如何自己做线上家教呢?常见的有以下几个app,下面将为大家介绍其原理和详细使用方法。1. 星云教育星云教育是国
2023-06-05
自己做故事小说的app
自己做故事小说的app,主要分为以下几个步骤:一、确定需求和功能开发一个app之前,首先需要确定用户的需求和app需要实现的功能。在这个过程中,需要考虑到用户的使用习惯和体验,以及市场的竞争情况等等。一些常见的功能包括:1. 创作工具:提供给用户创作故事的
2023-06-05
自己开发app难吗
开发一个完整的应用程序需要不同阶段的技术知识和经验。这些阶段包括:需求分析、设计、开发、测试、部署和维护。以下是关于如何开发一个应用程序的一些原则和详细介绍。首先,分析用户需求并确定应用程序的功能。开发者需要弄清楚应用程序的基本用途和解决什么问题,为谁服务
2023-06-05
自己开发app还是外包好
在选择是否自己开发app还是外包之前,我们需要考虑几个方面:1. 时间如果你熟悉开发流程并拥有必要的技能,自己开发app可能采取一定时间,而且还需要时刻学习新技能来跟上技术的变化。但是,如果你雇用一个经验丰富的开发团队外包你的app,可能会使开发时间更短。
2023-06-05
自己开发app自己使用可以吗
自己开发app自己使用是完全可行的。这里我们可以从技术层面来解释其原理和详细介绍。首先,我们需要明确一个概念:开发app包含两个主要部分,即前端和后端。前端部分是用户所看到的界面、操作和数据展示,后端是数据的存储和处理。对于自己开发app,一般来说,针对个
2023-06-05
自己制作选择题的app
制作选择题的APP可以帮助教师、学生、培训师、培训机构等制作自己的题库,便于教育教学和培训考核,实现个性化的教学和培训过程。本文将详细介绍选择题APP的制作步骤和原理。制作选择题的APP的主要原理是基于客户端与服务器端的交互。客户端通过用户界面内的操作,将
2023-06-05
自己做1个app
做一个app可能对初学者来说是一项艰巨的任务,但是一旦你掌握了一定的编程技能,就会发现其实并没有那么难。在这篇文章中,我想向你介绍一些开发一个app的原理和步骤。当然,这不是一种非常详细的教程,但它能够提供一个起点,让你开始理解如何创建一个基础app。第一
2023-06-05
自贡市app开发
自贡市是四川省的一个地级市,是一个有着悠久历史的文化名城,也是中国石灰之乡。近年来,随着移动互联网的快速发展,自贡市的各行各业也开始越来越多地使用移动应用程序来提高效率和服务质量。而移动应用程序,简称app,是一种运行在移动设备(如智能手机、平板电脑等)上
2023-06-05
怎样才能开发一个自己的app
要开发一个自己的app,需要掌握一定的编程语言和开发工具,同时要具备良好的设计理念和用户体验意识。下面我们将分别介绍app开发的步骤和注意事项。1.确定开发平台和编程语言目前主流的移动操作系统有iOS和Android两种,开发app需要选择相应的开发平台。
2023-06-05
能不能自己做一个app
当下,手机应用已经成为我们生活中不可或缺的一部分,成为人们社交、出行、学习等生活的主要方式。而很多人都会有一个简单的想法:我也能做一个APP。实际上,在现代科技环境下,自己做一个简单的APP是很有可能的,本文将主要介绍如何做一个简单的APP。一. APP开
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1