对接浦发银行支付(三)-- QR扫码付

一、使用场景

扫码付,指的是支付平台,给每个用户的具体订单生成一个QR二维码,用户本人或者他人扫码付款。
付款用户可以直接识别二维码,或者下载到本地,通过微信或支付宝扫一扫识别,第二步将跳转至对应的支付页面H5–第三方支付提供。
二维码其实就是一个h5地址,既要支持微信扫,又要支持支付宝扫。

简单的流程如下:
在这里插入图片描述

从上述要求寻找浦发银行的支付方式,交易类型tranType,选择“OK-聚合动态码支付”。

下面将具体介绍浦发银行的扫码付。

二、扫码付接口

和jsapi支付是同一个接口,交易类型不同,且不必要openId。

  • 接口名称:对公收款支付
  • 接口URI:/api/corporateAccounts/payments/orders
  • 请求方式:POST

请求报文

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • terminalNo:终端号,在申请商户的时候,由浦发银行分配给我们
  • cmdtyDsc:商品描述
  • tranAmt:交易金额,单位是元
  • iPAdress:这个最容易踩坑,地址的英文明明是address,它偏偏要少写一个d;其次该字段在Lombok自动生成getter/setter的时候,会变成“IPAdress”。
  • mrchlInfmAdr:支付回调的异步通知地址
  • tranType:选择“OK”
  • mrchId:商户号,在联调接口前,先在浦发后台申请好商户(注意:不是浦发开放平台,这也是我想不明白的地方:既然有开放平台,怎么不把商户后台相关功能一并开放给商户呢?这一点还是微信商户后台做得好,真的是让银行望尘莫及了)
  • mrchOrdrNo:平台支付流水号,这个字段命名也是醉了(好端端的订单编号OrderNo,被他给取成了OrdrNo,每次都生怕写错了)

响应报文

  • tranOrdrNo:浦发银行支付流水号,需要保存至支付订单
  • trandDate:交易日期,本来没什么用,查询支付结果接口中需要用到它,且必传参数。
  • qRCdLind:二维码链接,这就是我们本文的主要成果,目标就是为了得到它。
    在这里插入图片描述

示例报文

  • 请求报文
{"terminalNo": "98A00162","mrchOrdrNo": "052B40408140404004512","cmdtyDsc": "商品描述","tranType": "OK","mrchId": "310319982990001","IPAdress": "127.0.0.1","mrchTm": "20240408140404","mrchlInfmAdr": "http://122.xx.xx.xx:6008/pay/api/v1/xxx/xxx","tranAmt": "0.01"
}
  • 响应报文
{"statusCode": "0000","transNo": "04972404086861405202210686","isSbscrbFlg": "","isFlag": "","pyBnkInfo": "","totalAmt": "","clueDtl": "","byrOfAlipayAcctNO": "","actRcvAmt": "","byrPayAmt": "","usPntsPayAmt": "","toUsEstbInvAmt": "","inrChlCnlNo": "","aLPAYCdBal": "","mrchStrNm": "xxx公司","userId": "","addItInNal": "","fldData": "","clrgDate": "",# 支付中状态"ordrSt": "09","tranType": "OK","tranAmt": "0.01","thdPtySeq": "","tranOrdrNo": "1901040814042900150041165352","tranDate": "20240408","qRCdLink": "https://etest2.spdb.com.cn/msemk-cli-h5app/#/H5CompanyPay?H5Channel=400&qrCode=https%3A%2F%2Fqr.95516.com%2F03100001%2Fccas%2F129%2FOK%2F5CD652D479B73FE9BCF0BAD1241A4F65AE3E1B9E2F9E1F3CB3DADB91D27CBF52","praPayCmmFlg": "","mrchId": "310319982990001","mrchTm": "20240408140429","signature": "","sgnData": "","aLTrnCrc": "","pymtMd": "","busInfo": "","dscntAmnt": "","mdsctAmnt": "","byUserType": "","apndPyMd": "","pblcAcctId": "","trdMerMechNo": "","weChatSubMechNo": "","bussRetInfo": "","errCode": "","errInfo": "","trdChnl": "","bnkngbsnssSeqNo": "","rsrvFld1": "","rsrvFld2": "","rsrvFld3": "","rsrvFld4": "","rsrvFld5": "","rsrvFld6": "","remark": ""
}

得到了返回字段qRCdLink,在通过下文的在线生成qr二维码,即可测试支付。

三、在线生成二维码

这里介绍一款在线生成二维码的工具:qr-code-generator

在这里插入图片描述

扫描后,跳转到https://etest2.spdb.com.cn/msemk-cli-h5app

交易单号,即浦发银行支付流水号,它是以1901开头的一串数字。

在这里插入图片描述

四、遇到的问题

1、下单账号与支付账号不一致,请核实后再支付

在这里插入图片描述

解决办法:上文讲到了,扫码付虽然不要求openId,但是浦发银行的测试环境要求我们必须把微信用户openId加到白名单。

也就说,我们必须先找到微信公众号appId及其下的openId。

2、“errCode”:“CBAS004”,“errInfo”:“缺少必要字段spbill_create_ip(UP0802100)”

从这个报错信息,根本就无法直观地看出是缺少了哪个必要字段。这是因为下单支付接口请求和响应,找遍了也找不到字段spbill_create_ip。

其实就是请求入参缺少了字段iPAdress。想不明白,为什么接口的字段命名得如此随意。

3、当前页面的URL未注册

在这里插入图片描述

这个错误很常见,解决途径就是在微信商户后台,【产品中心】–》【开发配置】–》【支付授权目录设置】,添加浦发银行的h5页面。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/797.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

详细分析Java中的AuthRequest类(附Demo)

目录 前言1. 基本知识2. Demo3. 实战 前言 公共接口,定义了对第三方平台进行授权、登录、撤销授权和刷新 token 的操作 1. 基本知识 先看源码基本API接口: import me.zhyd.oauth.enums.AuthResponseStatus; import me.zhyd.oauth.exception.AuthExce…

SSDReporter for Mac:全面检测SSD健康,预防数据丢失,让您的Mac运行更稳定

SSDReporter for Mac是一款专为Mac用户设计的固态硬盘(SSD)健康状况检测工具,旨在帮助用户全面了解并监控其Mac设备中SSD的工作状态,从而确保数据的完整性和设备的稳定性。 这款软件具有多种强大的功能。首先,它能够定…

09-ARM开发板的HelloWorld

在ARM开发板上运行x86_64平台程序 前面在Ubuntu系统编译生成了X86_64平台的HelloWorld程序,通过NFS服务器,尝试在开发板上直接运行。 如图所示,程序无法正常运行,终端提示ARM开发板在执行x86架构(Intel或AMD&#xff…

c++使用googletest进行单元测试

googletest进行单元测试 使用Google test进行测试一、单元测试二、使用gmock测试 使用Google test进行测试 使用场景: 在平时写代码中,我们需要测试某个函数是否正确时可以使用Google test使用,当然,我们也可以自己写函数进行验证…

旅游陪同翻译难吗, 旅游翻译英译中哪家好?

近来,随着中国旅游业的蓬勃发展,旅游陪同翻译的需求也水涨船高,这些专业的翻译服务者为中外游客搭建起友谊的桥梁,引领他们共同探索中国这片古老而神秘的土地 。那么,旅游陪同翻译英译中难吗?我们如何在众多…

mysql数据库连接工具(mysql数据库连接工具怎么备份数据不备份表结构)

MySQLWorkbench连接,导入和导出数据库? 1、导出:使用MySQL Workbench连接到MySQL服务器,选择要导出的数据库,右键单击数据库并选择“导出”。选择要导出的表和数据,将导出文件保存为.sql文件。 2、打开MySQL Workbench&#xf…

OpenHarmony 视图缩放组件—subsampling-scale-image-view

简介 深度缩放视图,图像显示,手势平移缩放双击等 效果图(旋转、缩放、平移) 下载安装 ohpm install ohos/subsampling-scale-image-view OpenHarmony ohpm 环境配置等更多内容,请参考如何安装 OpenHarmony ohpm 包 使…

昂科烧录器支持Nuvoton新唐科技的低功耗微控制器M482SIDAE

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表,其中Nuvoton新唐科技的低功耗微控制器M482SIDAE已经被昂科的通用烧录平台AP8000所支持。 M482SIDAE以Arm Cortex-M4F为核心,是带有DSP指令集的高效能低功耗微控制器。其…

基于Spingboot+vue协同过滤音乐推荐管理系统

项目演示视频效果: 基于Spingbootvue协同过滤音乐推荐管理系统 基于Spingbootvue协同过滤音乐推荐管理系统 1、项目介绍 基于Springboot的音乐播放管理系统总共两个角色,用户和管理员。用户使用前端前台界面,管理员使用前端后台界面。 有推荐…

【Win】怎么下载m3u8视频\怎么通过F12开发人员工具获取视频地址\怎么下载完整的.ts格式视频

怎么下载m3u8视频?首先通过浏览器本地的开发人员工具,获取m3u8的地址,然后再通过第三方下载工具下载,此处以N_m3u8DL-CLI_v3.0.2为例 如下图的步骤,即可获取到视频的m3u8地址 打开N_m3u8DL-CLI_v3.0.2,粘贴…

如何实现外网访问内网ip?公网端口映射或内网映射来解决

本地搭建服务器应用,在局域网内可以访问,但在外网不能访问。如何实现外网访问内网ip?主要有两种方案:路由器端口映射和快解析内网映射。根据自己本地网络环境,结合是否有公网IP,是否有路由权限,…

基于Springboot的社区疫情返乡管控系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的社区疫情返乡管控系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系…

JavaWeb--06Vue组件库Element

Element 1 Element组件的快速入门1.1 Table表格 1 Element组件的快速入门 https://element.eleme.cn/#/zh-CN Element是饿了么团队开发的 接下来我们来学习一下ElementUI的常用组件,对于组件的学习比较简单,我们只需要参考官方提供的代码,然…

AJAX——图片上传

图片上传流程 1.获取图片文件对象 2.使用FormData携带图片文件 3.提交表单数据到服务器&#xff0c;使用图片url网址 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible"…

STM32使用HAL库解码433遥控芯片EV1527

1、首先了解一下433遥控芯片ev1527的基本资料&#xff1a; 这是他编码的关键信息&#xff1a; 也就是说&#xff0c;一帧数据是&#xff1a;一个同步码20位内码4位按键码。 内码20位2^201048576个地址。 发送就是一帧数据接一帧数据不间断发送。 2、解码思路 从上面的帧结构…

Jmeter测试学习笔记

第一章 jmeter基础知识 一.Jmeter工具中的组件 1.测试计划&#xff1a;Jmeter测试的起点。容器。 2.线程组&#xff1a;代表一定的用户 3.取样器&#xff1a;发送请求的最小单元 4.逻辑控制器&#xff1a;处理请求逻辑 5.前置处理器&#xff1a;请求之前的操作 6.后置处…

公网IP地址如何申请SSL证书?有免费的IP ssl吗?

如果用户没有域名或只有公网IP地址或者不方便使用域名&#xff0c;IP地址ssl证书这一特殊的证书可以为IP地址实现HTTPS的安全保护&#xff0c;提高网站数据传输的安全性。 IP地址申请SSL证书的基本步骤 IP ssl证书下载---注册填写230916https://www.joyssl.com/certificate/sel…

数据可视化(五):Pandas高级统计——函数映射、数据结构、分组聚合等问题解决,能否成为你的工作备用锦囊?

Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&#xff01; 喜欢我的博客的话&#xff0c;记得…

【不看后悔】AGI时代,这些工具真的能让你收入翻倍!

引言 在数字化浪潮中&#xff0c;AIGC已经成为不可或缺的一部分 无论你是一名内容创作者&#xff0c;还是简单的社交媒体用户&#xff0c;免费的AI工具都能在多个层面助你一臂之力。这些工具涵盖从文本创作到图像设计&#xff0c;再到视频制作等多个方面&#xff0c;不仅可以…

Amazon云计算AWS之[1]基础存储架构Dynamo

文章目录 Dynamo概况Dynamo架构的主要技术主要问题及解决方案Dynamo的存储节点数据均衡分布的问题一致性哈希算法改进一致性哈希算法 数据备份数据冲突问题成员资格及错误检测容错机制临时故障处理机制永久性故障处理机制 Dynamo概况 面向服务的Amazon平台基本架构为了保证其稳…