自己开发的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并不难,只需要掌握一些基础的知识和技能,就可以实现。一、了解A
2023-06-05
什么app可以自己制作漫画
现在,随着科技的发展和移动互联网的普及,越来越多的人爱看漫画。相比其他的阅读方式,漫画有着独特的特色。因此,自己制作漫画也成为了一种很受欢迎的娱乐方式。现在有许多应用程序可以用来创建漫画,下面我将介绍一些制作漫画的APP。1. Comic Strip Ma
2023-05-31
什么app可以做出自己的形象
在移动设备的时代,越来越多的人选择使用手机app来制作自己的形象。这些app使用了人工智能和计算机图形处理技术,能够快速生成非常逼真的虚拟形象。下面我们就为大家介绍几个常见的形象制作app,并解释它们的工作原理。1. BitmojiBitmoji是一个非常
2023-05-31
能自己做的app
随着移动设备的普及和应用程序的全面覆盖,人们可以在任何地点随时使用各种应用程序。为了满足人们的需求,许多人自己动手开发自己的应用程序。本文介绍了一些能够自己开发的应用程序以及它们的原理。一、计算器应用程序计算器应用程序是一个可以迅速解决加法、减法、乘法和除
2023-05-30
如何自已做小说app
想要自己做一个小说app,需要掌握一些基础知识和技能。下面,我们来介绍一下制作小说app的原理和详细步骤。1. 掌握编程知识首先,做一个小说app需要掌握编程知识,特别是移动端开发的相关知识。常见的移动端开发语言有Java、Objective-C、Swif
2023-05-30
如何自己制作商品app
制作商品APP可以让小企业或个人创业者将自己的商品通过APP的方式展示和销售,这是一个很好的商机。下面详细介绍制作商品APP的原理和过程。一、基本原理制作商品APP主要分为以下几个步骤:1.构思产品: 选择自己感兴趣的领域,考虑一些创新的点子,想出名字和设
2023-05-30
如何自己创业做一款app
创业是很多人都向往的一件事情,而随着智能手机的普及,开发一款app成为了一个非常值得考虑的创业方向。本文将介绍自己创业做一款app的原理和详细步骤。一、了解市场需求在创业开发之前,需要了解市场需求,分析市场上已经存在哪些app,以及它们所涵盖的功能和特点,
2023-05-30
美册app怎么自己制作沙雕人物模型
美册app是一款非常有趣的应用程序,可以帮助用户轻松制作沙雕人物模型,让你能够将自己的创意转化为生动的形象。下面我们就来详细了解一下美册app如何自己制作沙雕人物模型。一、选择沙雕人物模型的素材首先,在美册app中自己制作沙雕人物,需要先选择一个模型的素材
2023-05-30
开发一款自己的app
开发一款自己的app是一个创新的想法,不仅可以实现自己的想法,还可以通过将它发布到各个应用商店中,让更多的人使用它,从而成为一个有用的工具或应用程序。但是,开发一款自己的app并不是一件容易的事情,需要有一定的技术知识和经验,在本文中我将分享我自己开发一款
2023-05-30
简单快速自定义制作app软件
现在,移动应用开发已成为一个非常具有吸引力的领域。越来越多的人开始着手制作自己的应用程序。然而,对于不具备编程知识的人员来说,开发移动应用程序可能并不容易。但是幸运的是,有许多简单易用的工具可以帮助你快速自定义制作app软件。首先,我们要考虑的是选择一个合
2023-05-30
app自由开发
随着智能手机的广泛普及,移动应用程序已成为人们日常生活和工作的必需品。对于许多人来说,创建自己的应用程序可能似乎是不可能的任务。实际上,通过一些简单的步骤和工具,任何人都可以完全自由地开发移动应用程序。本文将简要介绍移动应用程序开发的原理和详细过程。移动应
2023-05-30
android 自建app 运行报错
Android 自建 App 运行报错可能涉及很多因素,下面将结合常见错误和原因,进行详细介绍。1. 类无法转换异常(ClassNotFoundException)当执行到某个类的时候,发现这个类并不存在,就会抛出 ClassNotFoundExcepti
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1