支付失败如何编程跳过变成支付成功

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了支付失败如何编程跳过变成支付成功相关的知识,希望对你有一定的参考价值。

参考技术A 热门频道

首页

博客

研修院

VIP

APP

问答

下载

社区

推荐频道

活动

招聘

专题

打开CSDN APP
Copyright © 1999-2020, CSDN.NET, All Rights Reserved

打开APP

南独酌酒nvn
关注
【Java 实现微信支付、Native 支付流程】,从编写代码到支付成功,一步到位! 原创
2020-10-17 14:30:03
8点赞

南独酌酒nvn

码龄4年

关注
文章目录
1. 项目环境介绍
2. 微信支付文档
2.1 业务流程说明
3. 准备信息
3.1 微信公众账号如何获取?
3.2 商户号如何获取?
3.3 API密钥如何获取?
3.4 准备工具类
4. 进入开发阶段
4.1 后端编写`生成微信支付二维码`的接口
4.2 前端实现
4.3 后端编写 `查询订单支付状态` 接口
4.4 前端调用 `查询订单支付状态` 接口
总结
1. 项目环境介绍
jdk 1.8
mysql 5.7
maven 3.6
在这里插入图片描述
项目前后端分离:后端 SpringBoot 项目、前端 Vue 项目

2. 微信支付文档
官方文档:https://pay.weixin.qq.com/wiki/doc/api/index.html
在这里插入图片描述
Native 场景介绍:用户扫描商户展示在各种场景的二维码进行支付。
这里我们支付流程选择方式二:
官方流程图:
在这里插入图片描述

2.1 业务流程说明
用我自己完成一次的过程来说。

在前端页面,用户肯定要点击某个按钮或者东西来触发事件,调用我们自己编写的接口,然后返回给前端一个二维码。
我们通过调用微信支付 【统一下单API】接口得到一个 code_url。
然后在前端通过某项技术跟据返回的 code_url 生成二维码。
用户打开微信 “扫一扫”,然后扫描这个二维码。
进入支付页面,支付指定金额后完成支付交易。
然后我们在调用微信支付【查询订单 API】查询用户支付状态
通过此支付状态可以判断用户支付成功还是支付失败。
支付成功就执行我们自己的业务逻辑,一般像修改定单状态改成已支付。
在这里插入图片描述
3. 准备信息
pom 文件引入微信支付 SDK 依赖

由于我们后面要调用微信支付的 AP
参考技术B 支付失败编程跳过变成支付成功1. 等待回调,根据回调结果进行处理;
2. 查询支付宝订单状态,进行处理;
3. 对支付请求进行finally处理,增加中间状态,事后进行补偿处理;

汇聚,杉德,微信原生支付,支付宝成功/失败回调记录

参考技术A 1、清除微信缓存,清除微信存储空间,重新登录微信
2、如果有更换包名,有更换签名文件信息,清除编译器缓存clean Project 、Invalidate Caches/Restart,并确保包名,签名没错

额外补充说一句,无论是否支付成功、失败,最好都是轮训请求后端进行一个验证操作。所以对结果是怎么样的,我们都可以不用关心

杉德小程序支付,汇聚小程序支付,当你取消支付,点击小程序右边的关闭圆圈的时候,WXEntryActivity 界面会自动消失,但不会走finish,onDestroy。所以要做检测是否真的成功或者是否支付完成,需要自行在吊起微信支付页面或者待确认界面进行轮训请求后台,确定是否支付成功。

杉德小程序支付、汇聚小程序支付点击返回商户会走onResp,也会走finish,onDestroy

支付宝支付,不像微信一样,当你取消支付,支付成功,支付宝会帮你回调handleMessage,所以你需要在这里处理你自己的逻辑

1、原生微信APP支付,只能回调WXPayEntryActivity
2、汇聚、杉德小程序支付只能回调WXEntryActivity ,点击返回商户会走onResp,也会走正常的完整生命周期。如果点击的是小程序的圆圈关闭是不会走onResp,也就没有了WXEntryActivity 完结的生命周期,当你切回原来自己APP界面的时候,是直接在你发起小程序支付的界面了。

以上是关于支付失败如何编程跳过变成支付成功的主要内容,如果未能解决你的问题,请参考以下文章

处理支付成功但数据库更新失败

支付失败“商户不接受此类支付”

接入支付宝支付SDK

支付系统的对账

大商创微信公众号微信支付失败报错

PayPal预批支付测试——如何触发支付失败?