自己开发的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的实现,主要分为前端和后端两个部分。前端是指用户在手机上看到的交互界面和功能,
2023-06-05
自由行定制app开发
自由行旅游已经成为当今旅游行业的一种主流方式,自由行定制app的开发也已经成为了一个具有广泛意义的技术探索。自由行定制app的开发主要是为了让用户能够更方便地在旅游前期规划行程,中期记录旅行经历以及后期留下点评分享。自由行定制app开发的原理:自由行定制a
2023-06-05
自学python 多久可以开发app
Python是一种动态解释型语言,不但易于学习,而且拥有强大的功能,尤其适用于数据处理和应用程序开发。对于初学者来说,自学Python也不算难事。那么,自学Python需要多久才能够开发出自己的app呢?本文将以原理和详细介绍的形式来解答这个问题。一、Py
2023-06-05
自己开发互助app
随着互联网的发展和普及,人们的生活方式也在改变。越来越多的人开始依赖网络,在网络中交流、学习、购物、娱乐等等。在这样的背景下,开发一款互助app,已经成为了创业或者个人学习的热门方向之一。那么,什么是互助app呢?它是一款可以满足用户之间互相帮助的应用程序
2023-06-05
赚赚熊自购商城app功能开发
赚赚熊自购商城app是一款基于移动设备的购物平台,它为用户提供了丰富的商品展示和一系列购物、支付、物流等功能。下面将详细介绍该app的功能开发原理。1. 商品展示:赚赚熊自购商城app提供多种分类方式,让用户方便地找到自己需要的商品。首先,商品被分为不同的
2023-06-05
制作属于自己的app需要多少钱
制作一个属于自己的app,需要的费用因项目规模和功能而定。在此,我将介绍app制作的一般原理,以及可能产生的费用。首先需要了解的是,一个app的制作通常有以下几个步骤:1.需求分析:明确产品的功能、目标用户、技术架构等。这一步骤的重点是检查清楚需求,明确产
2023-06-05
怎么自己简单做一个app软件
想要自己简单做一个APP软件,可以采取以下步骤:1.明确功能和目标在制作APP软件之前,首先要明确自己制作的APP要具有什么功能,针对什么样的用户,有什么样的目标和预期。这些都是确定APP品质的重要因素。确定了目标和功能后,就可以开始着手进行APP软件的制
2023-06-05
如何自己制作校服app
校服是每个学校的重要元素之一,而制作校服app则是现在许多学校和服装公司都非常关注的一个话题。一个好的校服app能够为学生、家长以及校方提供便利,例如:方便购买、体验、设计以及定制等。但是,要制作一个完美的校服app还需要具备一些技术和制作经验。下面将介绍
2023-05-30
傻瓜式自建app现招代理商
傻瓜式自建app是指一款可以让用户通过简单的操作,轻松地自建自己的app的工具。这种工具一般采用了可视化建站等技术,通过拖拽、自由排版等方式让用户自由地设计和定制自己的app。比如我们常见的APP制作平台——易企秀。作为一个网站博主,了解这个工具背后的原理
2023-05-30
企业微信与自建app协同发展
随着智能手机的普及,移动互联网以及各种社交软件的流行,近年来企业微信和自建APP逐渐成为企业联络和沟通的主要方式。企业微信作为针对企业级用户的微信,具有类似微信的功能,同时也支持内部用,如OA(办公自动化)、CRM等应用,以及针对企业的应用。而自建APP则
2023-05-30
快速自建一款app
自建一款app看起来似乎很复杂,但实际上只要掌握了一些基本原理,就能快速地制作自己的app。在这里,我将详细介绍如何快速地自建一款app。1. 确定目标在开始设计app之前,需要考虑这个app的目标是什么,以及它将如何解决用户的问题。这些考虑可以帮助你确定
2023-05-30
开发app是自建还是外包
当一个企业或个人想要开发自己的移动应用程序(App)时,他们通常会面临一个重要的决定:是自己开发还是外包给第三方公司?在这里,我们将详细介绍自建和外包的利弊,以便你可以为你的项目做出最好的决策。自建自建应用程序是指企业或个人自己开发自己的应用程序。这意味着
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1