java快速对接微信支付分(一)

2023-10-27

1.微信支付分产品介绍

维信支付分是对个人的身份特质、支付行为、使用历史等情况的综合计算分值,旨在为用户提供更简单便捷的生活方式。

(1)用户可在具体应用场景中,开通威信支付分,此为最常见的开通方法。开通后,用户可以在【微信 > 我 > 服务 > 钱包 > 支付分】中查看分数和使用记录。

(2)用户可在【微信 > 我 > 服务 > 钱包 > 支付分】直接点击,刷脸开通,此方法开通支付分后,用户仅能查看自己的分数,如需使用应用场景中的服务,仍需在应用场景中开启服务

微信支付分入口示意图

用户在场景中开通示意图

说明:用户只需在某一个应用场景中开通一次(开通分数+开通免密代扣),即可在其他应用场景使用支付分功能,无需再次开通分数或开通免密代扣。

商户接入微信支付分行业解决方案,即可获得:
1、设置分数门槛,筛选合适用户的能力,分数达到或超过该分数门槛的用户,才可以享受对应的服务(例如免押金,免预充值等)。
2、免密代扣能力,服务结束后,进行免密扣款。
3、催收能力。

2.接入前准备

A--大致的接入流程大纲如下,可以先混个眼熟

B--进行商户申请微信支付分获取到服务id  --- service_id

以下是微信官方的链接

https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter3_1_1.shtml

友情提示:申请成功之后会有微信工作人员进行把你们拉入一个裙,其他的不懂的可以进行询问群里的工作人员

3.需确定订单模式和免确定模式

A--需确定订单模式

意为:每次进入你的程序的时候都要进行微信那边授权一次 且 可传 先免模式的字段 或 先享模式的字段

【需确认订单模式】典型场景说明:

例如 免押租借场景,均是使用【需确认订单模式】,以租借充电宝为例

 

 

B--免确定订单模式

意为:第一次进行进入你的程序的时候就进行微信那边的授权 后续进行使用的时候不用在进行微信的授权,

该模式只能添加只可传 先享模式字段

【免确认订单模式】典型场景说明:

例如 网约车先乘后付,是使用的【免确认订单模式】

 

 

补充一点为【免确认订单模式】是高级接口权限,目前只支持如下行业调用:

 除以上行业/场景外,其他行业/场景均只能调用【需确认订单模式】接口。

接口调用权限与服务id相关,在申请服务id时,只有上述场景下的服务id,才有权限调用【免确认单定模式】接口。即只有在上述场景下,创单订单api接口中need_user_confirm字段才能传
false:免确认订单。

 C--先免与先享字段的说明

在创建支付分订单的risk_fund字段里面的name

如图

先免模式:顾名思义就是比如免去押金,免去预付款,免去保证金,前提是评估通过,即免去此类的东西,进行服务,后进行扣款,当评估不通过,即在 确认订单页上进行押金/预付款/保证金支付,支付成功进行服务使用

先享模式:是指评估不通过,不能通过缴纳费用,继续进行服务使用。例如信用回收,用户评估通过,可先获得部分回收款,若评估不通过,则无法获得。

D--需确定模式和面确定模式的大致思路图

需确定模式

 

免确定模式

 

4.实际开发的细步骤 

这里我选择的是需确定模式和先享模式

需确定模式的api为公共api和需确定模式api

以下为官网的链接

https://pay.weixin.qq.com/wiki/doc/apiv3/apis/index.shtml

A--进行商户申请成功获取到service_id

B--进行创建支付分订单

以下为创建支付分订单的接口

创建支付分订单

我把我使用的发送http请求的工具类分享出来

public class HttpClientUtils {
    /**
     * 发送get请求
     * @param url 请求地址
     * @return 返回内容 json
     */
    public static String httpGet(String url){

        // 1 创建发起请求客户端
        try {
            HttpClient client = new HttpClient();
            // 2 创建要发起请求-tet
            GetMethod getMethod = new GetMethod(url);
//            getMethod.addRequestHeader("Content-Type",
//                    "application/x-www-form-urlencoded;charset=UTF-8");
            getMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"utf8");
            // 3 通过客户端传入请求就可以发起请求,获取响应对象
            client.executeMethod(getMethod);
            // 4 提取响应json字符串返回
            String result = new String(getMethod.getResponseBodyAsString().getBytes("utf8"));
            return result;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}

在进行解析第三方接口返回的json的时候我一般使用FastJson

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.58</version>
        </dependency>

大致的思路就是,先把请求需要的东西给填入进去,在使用工具类进行发送http请求,返回的结果使用工具类进行解析

注意:

此处应该为true 因为选的是需确定订单

 

请求示例

{
  "out_order_no": "1234323JKHDFE1243252",
  "appid": "wxd678efh567hg6787",
  "service_id": "500001",
  "service_introduction": "某某酒店",
  "post_payments": [
    {
      "name": "就餐费用服务费",
      "amount": 4000,
      "description": "就餐人均100元服务费:100/小时",
      "count": 1
    }
  ],
  "post_discounts": [
    {
      "name": "满20减1元",
      "description": "不与其他优惠叠加"
    }
  ],
  "time_range": {
    "start_time": "20091225091010",
    "end_time": "20091225121010"
  },
  "location": {
    "start_location": "嗨客时尚主题展餐厅",
    "end_location": "嗨客时尚主题展餐厅"
  },
  "risk_fund": {
    "name": "ESTIMATE_ORDER_COST",
    "amount": 10000,
    "description": "就餐的预估费用"
  },
  "attach": "Easdfowealsdkjfnlaksjdlfkwqoi&wl3l2sald",
  "notify_url": "https://api.test.com",
  "openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
  "need_user_confirm": true
}

当发送成功之后会获取package数据,在使用封装的思想把数据返回去前端进行调起支付的请求

前端调起支付请求

以上部分内容参考该文章 送上链接

https://blog.csdn.net/hgg923/article/details/112469575#comments_22396695

第一次写博客,不足之处请指出,后续内容在第二部

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java快速对接微信支付分(一) 的相关文章

  • Junit:如何测试从属性文件读取属性的方法

    嗨 我有课ReadProperty其中有一个方法ReadPropertyFile返回类型的Myclass从属性文件读取参数值并返回Myclass目的 我需要帮助来测试ReadPropertyFile方法与JUnit 如果可能的话使用模拟文件
  • 在内存中使用 byte[] 创建 zip 文件。 Zip 文件总是损坏

    我创建的 zip 文件有问题 我正在使用 Java 7 我尝试从字节数组创建一个 zip 文件 其中包含两个或多个 Excel 文件 应用程序始终完成 没有任何异常 所以 我以为一切都好 当我尝试打开 zip 文件后 Windows 7 出
  • 如何循环遍历所有组合,例如48 选择 5 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在java中从大小为n的集合中迭代生成k个元素子集 https stackoverflow com questions 4504974 how to iteratively generate k
  • .properties 中的通配符

    是否存在任何方法 我可以将通配符添加到属性文件中 并且具有所有含义 例如a b c d lalalala 或为所有以结尾的内容设置一个正则表达式a b c anything 普通的 Java 属性文件无法处理这个问题 不 请记住 它实际上是
  • org.apache.hadoop.security.AccessControlException:客户端无法通过以下方式进行身份验证:[TOKEN,KERBEROS] 问题

    我正在使用 java 客户端通过 Kerberos 身份验证安全访问 HDFS 我尝试打字klist在服务器上 它显示已经存在的有效票证 我收到的异常是客户端无法通过以下方式进行身份验证 TOKEN KERBEROS 帮助将不胜感激 这是一
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • 从最终实体获取根证书和中间证书

    作为密码学的菜鸟 我每天都会偶然发现一些简单的事情 今天只是那些日子之一 我想用 bouncy castle 库验证 java 中的 smime 消息 我想我几乎已经弄清楚了 但此时的问题是 PKIXparameters 对象的构建 假设我
  • 检测并缩短字符串中的所有网址

    假设我有一条字符串消息 您应该将 file zip 上传到http google com extremelylonglink zip http google com extremelylonglink zip not https stack
  • 将 MOXy 设置为 JAXB 提供程序,而在同一包中没有属性文件

    我正在尝试使用 MOXy 作为我的 JAXB 提供程序 以便将内容编组 解组到 XML JSON 中 我创建了 jaxb properties 文件 内容如下 javax xml bind context factory org eclip
  • 帮助将图像从 Servlet 获取到 JSP 页面 [重复]

    这个问题在这里已经有答案了 我目前必须生成一个显示字符串文本的图像 我需要在 Servlet 上制作此图像 然后以某种方式将图像传递到 JSP 页面 以便它可以显示它 我试图避免保存图像 而是以某种方式将图像流式传输到 JSP 自从我开始寻
  • Java ResultSet 如何检查是否有结果

    结果集 http java sun com j2se 1 4 2 docs api java sql ResultSet html没有 hasNext 方法 我想检查 resultSet 是否有任何值 这是正确的方法吗 if resultS
  • 如何访问JAR文件中的Maven资源? [复制]

    这个问题在这里已经有答案了 我有一个使用 Maven 构建的 Java 应用程序 我有一个资源文件夹com pkg resources 我需要从中访问文件 例如directory txt 我一直在查看各种教程和其他答案 但似乎没有一个对我有
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • 如何使用 jUnit 将测试用例添加到套件中?

    我有 2 个测试类 都扩展了TestCase 每个类都包含一堆针对我的程序运行的单独测试 如何将这两个类 以及它们拥有的所有测试 作为同一套件的一部分执行 我正在使用 jUnit 4 8 在 jUnit4 中你有这样的东西 RunWith
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • 使用 CXF-RS 组件时,为什么我们使用 而不是普通的

    作为后续这个问题 https stackoverflow com questions 20598199 对于如何正确使用CXF RS组件我还是有点困惑 我很困惑为什么我们需要
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • R学习笔记4

    7 基本绘图 使用plot调整坐标向量 foo lt c 1 1 2 3 5 3 9 4 2 bar lt c 2 2 2 1 3 0 0 2 plot foo bar plot简单二维作图plot x y x y的位置不一定为向量 还可以
  • 【基础计算机网络1】认识计算机网络体系结构,了解计算机网络的大致模型(下)

    前言 在上一篇我们主要介绍了有关计算机网络概述的内容 下面这一篇我们将来介绍有关计算机网络体系结构与参考模型的内容 这一篇博客紧紧联系上一篇博客 这一篇博客主要内容是 计算机网络体系结构与参考模型 主要是计算机网络分层结构 协议 接口 服务
  • 【Java基础】计算机网络知识整理

    文章目录 OSI七层模型与TCP IP 五层模型 各层常见协议与硬件 常见协议的概念 TCP UDP区别 TCP如何保障可靠传输 https blog csdn net qq 32998153 article details 7967856
  • 机器学习之决策树模型最优属性选择方法

    决策树模型是用于解决分类问题的一个模型 它的特点是简答 逻辑清晰 可解释性好 决策树是基于 树 结构进行决策的 每个 内部结点 对应于某个属性上的 测试 每个分支对应于该测试的一种可能结果 也就是该属性的某个取值 每个 叶子结点 对应于一个
  • 插入排序(递归版)

    include
  • 网络安全渗透测试面试题2021

    1 获得到一个待检测的网站后 你觉得应该先做什么 whois 网站源IP 旁站 C段网站 服务器操作系统版本 Web容器版本 程序版本 数据库类型 二级域名 防火墙 维护者信息 2 Mysql相关的SQL注入 5 0以上和5 0以下有什么区
  • css 深度选择器/deep/

    在vue element ui时会遇到无法修改element ui样式问题 当style设置为scoped的时 所写的样式对子组件且元素是遍历出来时 样式是不生效的 如果希望样式对子组件也生效 可以使用 deep 深度选择器 模板
  • 人工智能-模糊计算(一)

    一 模糊理论基础 1 引入什么是模糊 一粒种子肯定不能构成一堆 两粒也不能 但是人们承认一亿粒种子肯定能构成一堆 那么这个界限在哪儿呢 是否可以说325647粒种子不是一堆而325648粒种子则构成一堆呢 E Borel 在上面这个问题当中
  • mui滚动条实现横竖都能滚动

    网上查了半天就没有说明白的 官方文档也是言语不详 但是有点用 首先 在mui做手机app的时候 自己通过overflow auto 然后固定宽高去展示滚动条是不好使的 只能用它提供的这种滚动方法 官方例子 div class mui scr
  • 2021数学建模国赛一等奖经验总结与分享

    建模国一经验总结 超详细 可根据需要选择性阅读 0 前言 1 前期准备 1 1 学习与感悟 1 2 寻找队友 1 3 比赛推荐 1 4 前期磨合与训练 1 5 资源与知识储备 2 比赛期间 时间分配和节奏问题 一些小建议 3 论文部分方法总
  • 【翻译】是时候与科技建立更持久的关系了吗?

    当轨道交通时间到来时 你可以进行轨道交通 但不是之前 罗伯特 A 海因莱因 在他的SF小说 通往夏天的门 中 海因莱因认为 对于特定形式的技术变革 时间必须是正确的 在必要的技术和文化基础到位之前 它不会发生 问题是 我们是否已经达到了最终
  • 【Linux 系列笔记】04 VMware Workstation安装(超细!!!)

    作者 MiTu 本帖内容著作权归作者所有 转载请务必保留本文链接 VMware 和 CentOS 的安装 前言 安装VMware Workstation 前言 在学习Linux前 必须有一个Linux发行版的系统才能来学习 安装Linux系
  • 数据结构:八种常见数据结构

    八种常见数据结构 一 前言 二 常用的数据结构 数组 Array 栈 Stack 队列 Queue 链表 Linked List 树 Tree 图 Graph 堆 Heap 散列表 Hash 三 八种数据结构的区别 数组 栈 队列 链表 树
  • Golang Array 数组使用注意事项和细节

    在go数组当中 长度是数据类型的一部分 3 int 3 int 数组使用注意事项和细节 1 数组是多个相同类型数据的组合 一个数组一旦声明 定义了 其长度是固定的 不能动态变化 var a 3 int a 0 1 1 这样是不行的 必须是整
  • 解决网络正常,但chrome浏览器无法正常使用的问题

    其他浏览器和联网软件工具都能正常使用 唯独chrome浏览器一直崩溃 连设置页面都打不开 根本就无法设置 在网上找了很多方法 整理的方法有 1 代理问题 2 重置网络netsh winsock reset 然后重启 3 重新安装 然而 这些
  • 哪些事件经常会导致项目被延误

    http horizon itpub net post 339 394756 1 上级领导主管臆断 制定了不现实的期限 项目经理与程序员们被迫按照不合理的进度表开展工作 2 客户的需求发生了变化 但没有对进度表作出相应的修改 3 低估了项目
  • WEB工程启动加载jar包顺序

    WEB工程在TOMCAT容器中启动的时候jar包的加载顺序 1 java home lib 目录下的java核心api 2 java home lib ext 目录下的java扩展jar包 3 java classpath Djava cl
  • spring中的控制反转和依赖注入之间的关系

    Spring中的控制反转 把new这一个过程交给了spring容器去处理 控制反转就是将new对象这一个过程交给外部去做 即Spring 而不是自己去创建 图中的1 控制正转 并没有这个名词 只是为了更好的理解什么是控制反转 图2中并没有n
  • hexo博客主题diaspora的gitalk配置(多图预警)

    前提 已装好git hexo环境 首先 在github上注册 如下图所示 进入设置 开发者设置 新建OAuth App 注册 注册完成 注意事项均在图中标出 现在完成了第一步 然后去主题页下载主题 也可以在你的hexo文件夹下右键打开git
  • java快速对接微信支付分(一)

    1 微信支付分产品介绍 维信支付分是对个人的身份特质 支付行为 使用历史等情况的综合计算分值 旨在为用户提供更简单便捷的生活方式 1 用户可在具体应用场景中 开通威信支付分 此为最常见的开通方法 开通后 用户可以在 微信 gt 我 gt 服