自己开发的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. 数据源的选择:选择一个词源,目前市面上有很多免费或付费的英语词典API,比如百度翻译API、有道词典API、Oxford、Collins等,开发者可以根
2023-06-05
自己做的第一个上架app
我很荣幸地给大家介绍我自己做的第一个上架app。这个app的灵感来源于我个人的体验,因为我一直在寻找一种能够方便地管理我的计划和任务的工具,但又没有找到一个满足我需求的应用程序。于是我决定做一个自己的app,它可以帮助我管理和跟踪我的计划和任务。下面我将向
2023-06-05
自己做个app
现在,人们越来越离不开手机,而手机上的应用程序(APP)更是成为我们生活、工作和娱乐不可或缺的一部分。如果你也想尝试自己制作一款APP,那么这篇文章会为你介绍APP制作的基本原理和步骤。1.确定APP的目的和功能在制作APP之前,首先要明确APP的目的和功
2023-06-05
自己怎么制作社区app
社区APP是适用于社区管理、居民交流与生活服务的智能手机应用程序。近年来,社区APP已经成为城市管理的重要手段之一,在社区生活的各个方面都发挥着积极的作用。本文将为您介绍如何制作一个社区APP。一、确定APP需求和目标人群在开始制作社区APP之前,我们需要
2023-06-05
自动制作交友app
制作交友App的难度可以说是相当大的,需要包含用户界面设计、后台数据库设计及API接口设计、服务器端及客户端的开发等多个方面。但是,有现成的工具和框架可以帮助我们简化开发流程,降低难度。本文将介绍一种自动制作交友App的方法。首先,我们需要一个自动App制
2023-06-05
怎么自己做销售软件app
在如今的移动互联网时代,随着企业的不断发展,销售管理也越来越重要。为了更好的进行销售管理,许多企业开始使用各种销售管理软件。针对这种情况,我们可以开发一个销售软件App,来提升销售管理工作的效率。下面,我将介绍一下如何自己开发一个销售软件App。1. 确定
2023-06-05
有什么app可以随时记录自己做的事
现如今,许多人都有记录生活的习惯,比如日记、手账等。而对于一些想要具体知道自己日常的时间分配情况的人来说,记录生活更是必不可少的一环。为此,许多手机应用也应运而生,下面介绍几款类似的应用。1. ATrackerATracker是一款记录时间的应用,用户可以
2023-06-05
想自己做一个免费app用什么软件
如果你想要自己做一个免费的app,你可以采用现有的软件来实现。以下是几种常用的软件和它们的原理或详细介绍:1. Appy Pie:这是一个无需编程知识就可以创建app的平台。你可以使用它的图形化用户界面 (GUI) 来创建和定制app。Appy Pie支持
2023-05-31
写自己制作的一本书的app
我制作的这个书的app可以帮助用户制作出具有美观布局和专业感的电子书。以下是该app的原理和详细介绍:原理:该app的主要原理是利用可配置的模板、可定制化的元素和实时预览等技术,帮助用户快速制作出自己的电子书。首先,用户需要输入自己的书籍信息,包括书名、作
2023-05-31
黔西南自治州app开发公司
黔西南自治州是中国西南地区的一个自治州,位于贵州省西部。随着移动互联网的普及,越来越多的人开始使用智能手机,这也导致了手机应用程序(APP)的流行。对于黔西南自治州的企业而言,开发一个符合当地需求的APP,成为了一项必须要做的任务。APP是指适用于移动终端
2023-05-30
传统企业自建的移动商城app
传统企业自建的移动商城app是指企业自主开发的电子商务平台,在移动端进行展示和销售商品,满足消费者在手机端进行线下购物的需求。该移动商城app的原理是通过服务端将商铺和商品信息与用户的移动设备进行互联,实现双向通讯。具体实现包括以下几个方面:1. 基础架构
2023-05-30
app开发自学太难
应用程序开发是当今IT行业中最热门的领域之一,许多人都希望能够在此领域内发挥自己的才能。然而,在现阶段,自学开发手机应用程序并不是一个简单的任务,因为它牵涉到许多不同的技能和概念。以下是这一过程中需要面对的挑战。首先,应用程序开发依赖于具备深厚的编程知识。
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1