自己开发的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开发者的梦想。然而,要实现这个梦想,需要掌握一些基本的知识和技能,以及了解一些盈利模式。本文将详细介绍自己做出APP如何赚钱的原理。1.广告收益广告收益是一种最常见的APP盈利模式。APP开发者可以通过
2023-06-05
自学开发的社交app
开发社交app并不是一项简单的任务,需要掌握很多技能和知识。如果你是一位自学开发的人,下面就为你详细介绍社交app的开发原理。一、需求分析在开始开发之前,需要进行需求分析。先明确你的 app 究竟要提供什么样的功能,设计用户画像、场景和用户需求。这些应该是
2023-06-05
自己开发的app如何与云平台连接
随着移动互联网的快速发展,越来越多的人开始关注移动应用的发展。同时,随着云计算技术的普及,越来越多的应用开始将自己的数据存储在云平台上。那么,如何将自己开发的移动应用连接到云平台呢?本文将从原理和详细介绍两个方面来介绍这个问题。一、原理云平台连接的原理其实
2023-06-05
自己开发app需要的人
开发一个APP是一个涉及多个领域的复杂过程。这需要不仅需要具备一定的技术知识,也需要有丰富的经验和团队合作能力。以下是一些关键的角色:1. 开发人员无论是iOS还是Android ,开发人员肯定是不可或缺的。他们需要掌握多种技能,包括编程语言、系统架构和软
2023-06-05
自己如何制作电商app软件
制作电商APP软件的过程可以分为5个主要步骤:设计、开发、测试、发布和营销。下面将介绍每个步骤的原理和详细步骤。第一步:设计在设计阶段,需要确定APP的目标用户、商业模式和功能。首先,需要了解目标用户的需求和偏好,来决定APP的定位和功能。然后,需要确定商
2023-06-05
自己制作国外app怎么做的
制作国外应用程序可以参照如下步骤:1. 开发环境的选择:根据自己的开发需求选择不同的开发环境,例如:Android Studio, Xcode, React Native等等。其中Android Studio用于安卓应用程序的开发,Xcode用于IOS应用
2023-06-05
怎么做一个自己的新闻app
如果你想开发一个自己的新闻app,首先需要明确你的目标受众,以及你的app的功能和特点。接下来,我们将介绍一些开发一个新闻app的一般原则,这些原则将帮助你实现你自己的新闻app。1. 引入新闻源和分类新闻app的首要功能是提供最新的新闻信息。你可以通过引
2023-06-05
有什么app可以提醒自己做事的
随着现代社会的快节奏和信息爆炸,人们的生活越来越忙碌和繁琐,很容易忘记某些重要的事情。为了更好地管理自己的时间和完成任务,许多人转向了使用提醒类应用程序。这些应用程序可以帮助人们记录重要事件、保存备忘录、提醒重要信息和执行各种任务。下面介绍几款常用的提醒类
2023-06-05
药学自考本科有什么app可以做题的
药学自考本科有许多适用的APP,主要是为了方便学生随时随地进行考试备考。下面介绍几款较为优秀的APP。1. 药学自考考试大师药学自考考试大师是一款药学自学考试必备的APP,它包含了所有药学自学考试的科目,题目覆盖广泛,包含了理论和实践题。 APP 界面设计
2023-06-05
他无法做到自信英语翻译app
自信英语翻译APP是一款利用机器翻译技术,帮助使用者在不熟悉外语情况下快速解读翻译的工具。下面从原理和详细介绍两个方面来分析,为什么他无法做到自信英语翻译APP。一、原理机器翻译技术的发展始于20世纪50年代,1951年美国IBM公司研制出了世界上第一个机
2023-05-31
教你制作一个属于自己的手机app
制作一个属于自己的手机app可能会让人感到非常困难和吓人,但实际上,它并不需要过多懂数学或计算机编程相关的知识。因为现在有很多的在线工具和软件可以帮助我们轻松地完成手机应用程序的设计和开发。本文将介绍一些应用程序设计和开发方面的基本概念和步骤,而不涉及到具
2023-05-30
单词app可以自己做词集嘛
单词APP是一种非常流行的学习英语的方式,在这些应用程序中,用户可以通过各种方式学习英语单词、短语和句子,比如卡片背诵、单词游戏和阅读文章等等。但是,许多用户希望能够在这些应用程序中自己添加词汇和表达,以便更好地按照个人需求和兴趣学习英语。那么,单词APP
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1