完整建行支付
建行主扫支付:https://blog.csdn.net/weixin_42674576/article/details/122010126?spm=1001.2014.3001.5501
建行被扫支付:https://blog.csdn.net/weixin_42674576/article/details/122380110?spm=1001.2014.3001.5501
退款:https://blog.csdn.net/weixin_42674576/article/details/122428305

<?php
namespace service\ccb;
use app\util\HttpUtil;class QueryService
{// 请求接口域名const HOST = 'https://ibsbjstar.ccb.com.cn/CCBIS/B2CMainPlat_00_BEPAY';const MD5KEY = '20120315201809041004';/*** 支付查询 轮询订单结果-PAY101*/public function query($input) {$param = config('ccb.bePay');$publicParam = config('ccb.public');$data = ['MERCHANTID'   => $publicParam['merchant_id'],  // 商户号'POSID'        => $publicParam['pos_id'],       // 柜台号'BRANCHID'     => $publicParam['branch_id'],    // 分行号'GROUPMCH'     => '',                           // 集团商户信息'TXCODE'       => 'PAY101',                     // 交易码'MERFLAG'      => $param['mer_flag'],           // 商户类型'TERMNO1'      => '',                           // 终端编号 1'TERMNO2'      => '',                           // 终端编号 2'ORDERID'      => $input['order'],              // 订单号'QRYTIME'      => $input['qr_time'],            // 查询次数 从1开始'QRCODE'       => isset($input['code']) ? $input['code'] : '',            // 码信息(一维码、二维码)'QRCODETYPE'   => isset($input['code_type']) ? $input['code_type'] : '',  //二维码类型 如QRCODE为空 此参数为必输,1:龙支付2:微信3:支付宝4:银联'REMARK1'      => '',    // 备注 1'REMARK2'      => '',    // 备注 2'SUB_APPID'    => '',    // 子商户公众账号 ID'RETURN_FIELD' => '',    // 返回信息位图];// 与支付的区别TXCODE不一样,需要传QRYTIME,QRCODE和QRCODETYPE两个需传一个// 后续计算签名和加密串跟支付类似// 计算签名$sign = $this->calSign($this->sortParams($data));$data['SIGN'] = $sign;// 计算加密串$params = http_build_query($data);$pubKey = substr($publicParam['pub_key'], -30);$pubKey = substr($pubKey, 0, 8);$data['ccbParam'] = $this->calCcbParam($params, $pubKey);// 获取要请求的参数$requestData = $this->getRequestData($data);$url = self::HOST . '?' . http_build_query($requestData);$httpRequest = new HttpUtil();$res = $httpRequest::post($url);return $res;}/*** 按key升序排序,同时去掉空值* @param $params array* @return mixed*/public function sortParams($params) {ksort($params);foreach ($params as $key => $value) {if (empty($value) && $value == '') {unset($params[$key]);}}return $params;}/*** 计算签名* @param $params array 不含空值* @return string*/public function calSign($params) {return md5(http_build_query($params) . self::MD5KEY);}/*** 真正请求建行接口要传的参数* @param $data array* @return array*/public function getRequestData($data) {return ['MERCHANTID' => $data['MERCHANTID'],'POSID'      => $data['POSID'],'BRANCHID'   => $data['BRANCHID'],'ccbParam'   => $data['ccbParam'],];}/*** 计算ccbparam* @param $params string* @param $key string* @return string*/public function calCcbParam($params, $key) {$res = openssl_encrypt (iconv("utf-8", "utf-16", $params), 'DES-ECB', $key);$res = str_replace('+', ',', $res);$res = urlencode($res);return $res;}
}

完成后,在$input中传入参数:
order:订单号
code:码信息(扫码得到的字符串)
code_type:二维码类型 如未上送 QRCODE 则此参数为必输,1:龙支付2:微信3:支付宝4:银联
qr_time:查询次数,从1开始,每次+1,最高6次

被扫支付成功后,查询订单状态,接口返回如下:

还有一种方式是在建行商户平台去设置支付回调地址,然后服务器接收数据,再做验签

PHP 之建行龙支付 - 被扫查单(商家扫码客户二维码),查询订单是否付款成功相关推荐

  1. Java 支付对接之银联电子商务(海南)聚合二维码支付(POS 通插件 C 扫 B 业务)

    写在前面: 二维码支付宝有两种表现形式:第一种是动态的二维码,就是每生成一个订单就会生成一个二维码:第二种是固定的二维码,就是每个订单都是同一个二维码作为入口.本文主要描述的是如何使用银联的线下C扫B ...

  2. Spring Boot电商项目57:订单模块六:【前台:生成支付二维码】接口;(支付url的拼凑;利用zxing生成二维码;二维码图片的存储;真实地址与可访问地址的转换;)

    说明: (1)本篇博客主要内容是:开发[前台:生成支付二维码]接口: (2)本篇博客需要注意的点有: ● 支付url的拼凑: ● 利用zxing生成二维码: ● 二维码图片的存储:真实地址与可访问地址 ...

  3. TCPIP远程网络电子健康码扫码设备|二维码扫码门禁机HX-QR86L-IP在校园复学防疫领域的应用

    TCPIP远程网络电子健康码扫码设备|二维码扫码门禁机HX-QR86L-IP是一款铝合金材质.带液晶显示屏,一机两用,即可做门禁读头使用,也可以做电子健康码数据采集使用.可支持静态.手机动态二维码识别 ...

  4. 扫码普通二维码跳转微信小程序指定页面(体验服和开发服跳转链接不能动态传参)

    好久不见,时隔多年我又来记录问题来了,记录这次问题的主要原因是减少你我去搜索资源的时间,下面开始讲讲我越到的问题.(下面说的是针对小程序体验版或者开发版哈,正式环境不存在这个问题) 需求:pc端扫码登 ...

  5. delphi Mercadopago阿根廷支付(支持获取账户信息和余额、创建商店,商店查询、创建二维码、二维码查询、创建订单、订单查询、订单退款)

    下载链接:https://download.csdn.net/download/liushenglin123/11435379 [delphi Mercadopago阿根廷支付]支持获取账户信息和余额 ...

  6. 浅析IM即时通讯开发之扫码登录二维码

    二维码技术使用起来很简单,本系列的前三篇文章也专门针对IM扫码登录这个功能做了详细的分享,但本着学习技术不留死角的习惯,我认为有必要单独学习一下到底什么是二维码(说不定哪天被个刚入行的程序员轻轻一句& ...

  7. uniapp 扫码识别(一维码、二维码)

    注:需开启扫码功能,首先要在manifest.json配置中打开APP模块配置中 Barcode(扫码).Camera&Gallery(相机和相册) 自带扫码插件:uni.scanCode(O ...

  8. 为什么商家有了收款二维码还要使用聚合支付?

    随着移动支付的普及和兴起,许多公司和企业响应时代的需要,纷纷接入移动聚合支付.然而,一些公司和企业并没有突破传统的逻辑思维模式.他们觉得自己用的是自己的收款二维码,根本不需要使用聚合支付.今天,我将告 ...

  9. Kotlin高仿微信-第35篇-支付-二维码收款(二维码)

      Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册.登录.主页.单聊(文本.表情.语音.图片.小视频.视频通话.语音通话.红包.转账).群聊.个人信息.朋友圈.支付服务.扫一扫. ...

  10. 如何制作,支付后跳转到任意网址的图片二维码

    最近有一个项目,需要制作生成一个二维码图片,然后扫码支付后可以跳转到一个指定的网页. 这个需求倒是并不复杂,就是实现起来有点麻烦,需要判断是否支付成功,然后成功后回调通知什么的.我就想,网上有没有现成 ...

最新文章

  1. ASP.Net TextBox只读时不能通过后台赋值取值
  2. matlab仿真软件 高阶调制,高阶差分幅度相移键控调制解调系统及仿真
  3. 网络管理员的爱情,不解释...
  4. html语言head里面的link示例,Html之head部分详解(示例代码)
  5. Xuggler视频处理简介
  6. 企业实战04:Oracle数据库_管理表
  7. mysql-数据库的增删切换使用等操作
  8. Android入门篇二:使用意图在Activity之间传递数据
  9. 开源大数据平台HBase对接OBS操作指南
  10. 从高的角度看自动化测试
  11. c 导出html表格数据格式文件,将html网页导出excel表格数据/如何将html页面中的表格导出到excel表格...
  12. 一套SpringBoot+VUE全平台支付系统源码
  13. MySQL 命令无效问题
  14. Power BI DAX: FILTER函数使用多个条件筛选数据
  15. 期待只在最美的时光遇见你
  16. python概率密度函数参数估计_Python与项目反应理论:基于EM和MCMC的参数估计算法...
  17. 多人协作开发Axure教程(附Axure RP9的密钥)
  18. 测试人员在软件测试过程中的职责,到底哪些事情属于测试人员的职责?
  19. 发表论文级别及期刊选择
  20. scala编程_Scala可以带回编程的喜悦吗?

热门文章

  1. 工程师实战分享:77条STM32知识汇总
  2. 如何在php中添加动图,PS如何制作gif动图
  3. 脉冲压缩(Pulse Compression, PC)原理与MATLAB实现
  4. 计算机科学与技术保研好不好,2021年北京邮电大学计算机科学与技术专业保研成功上岸经验指导...
  5. codeforces 707c
  6. 客户分析表格怎么做 财务合并报表培训 5分钟看懂财务报表
  7. 指定的网络名不再可用
  8. beamer插入参考文献并引用(BibTex)
  9. 对工程与科学的认知以及对思维方式的理解
  10. tf SavedModel 保存模型的新方式