PHP 之建行龙支付-主扫(客户扫码商家二维码),获取二维码信息
最近业务需求,需要做一个建行支付,其中分为主扫和被扫,主扫相对简单;
完整建行支付
建行被扫支付:https://blog.csdn.net/weixin_42674576/article/details/122380110?spm=1001.2014.3001.5501
被扫支付查单:https://blog.csdn.net/weixin_42674576/article/details/122380365?spm=1001.2014.3001.5501
退款:https://blog.csdn.net/weixin_42674576/article/details/122428305
首先是配置一下主扫,这里仅将必须参数配置
<?php
return ['bankUrl' => 'https://ibsbjstar.ccb.com.cn/CCBIS/ccbMain',//主扫'pay' => ['CCB_IBSVersion' => 'V6','MERCHANTID' => '105910100002105', //商户代码'POSID' => '662222818', //商户柜台代码'BRANCHID' => '441000000', //分行代码'CURCODE' => '01', //币种'TXCODE' => '530550', //交易码'PUB' => '3d23ac1f0390bd82bf3fc69d020111', //柜台的公钥后30位//其他非必须参数,根据需求配置'RETURNTYPE' => '2', //0 或空:返回二维码页面,只支持建行龙支付;1:返回 JSON 格式【二维码信息串】,只支持建行龙支付;2:返回聚合扫码二维码页面;3:返回聚合扫码 JSON格式【二维码信息串】聚合扫码只能上送 2 或 3,4:返回聚合银联二维码信息串]
];
然后,主扫服务接口
public function pay($input){$bankUrl = config('ccb.bankUrl');$param = config('ccb.pay');$timeout = date("YmdHis",strtotime("+600 seconds"));$data['CCB_IBSVersion'] = $param['CCB_IBSVersion'];$data['MERCHANTID'] = $param['MERCHANTID'];$data['POSID'] = $param['POSID'];$data['BRANCHID'] = $param['BRANCHID'];$data['ORDERID'] = $input['ORDERID'];$data['PAYMENT'] = $input['PAYMENT'];$data['CURCODE'] = $param['CURCODE'];$data['REMARK1'] = '';$data['REMARK2'] = '';$data['TXCODE'] = $param['TXCODE'];$data['RETURNTYPE'] = $param['RETURNTYPE'];$data['TIMEOUT'] = $timeout;$data['PUB'] = $param['PUB'];//MAC 校验域$mac = 'MERCHANTID='.$param['MERCHANTID'];$mac .= '&POSID='.$param['POSID'];$mac .= '&BRANCHID='.$param['BRANCHID'];$mac .= '&ORDERID='.$input['ORDERID'];$mac .= '&PAYMENT='.$input['PAYMENT'];$mac .= '&CURCODE='.$param['CURCODE'];$mac .= '&TXCODE='.$param['TXCODE'];$mac .= '&REMARK1=';$mac .= '&REMARK2=';$mac .= '&RETURNTYPE='.$param['RETURNTYPE'];$mac .= '&TIMEOUT='.$timeout;$mac .= '&PUB='.$param['PUB'];$mac = md5($mac);$data['MAC'] = $mac;$url = $bankUrl.'?'.http_build_query($data);$res = $this->httpRequest($url);return $res;}
function httpRequest($url = null, $data = null,$post=1){$curl = curl_init(); // curl 初始化设置curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); // 校验证书节点curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);// 校验证书主机if (!empty($data)) {curl_setopt($curl, CURLOPT_POST, 1);curl_setopt($curl, CURLOPT_POSTFIELDS, $data);}else if($post){curl_setopt($curl, CURLOPT_POST, 1);}curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 以文件流的形式 把参数返回进来// 执行$res = curl_exec($curl);curl_close($curl);if (json_encode($res) === 'null'){//$res = mb_convert_encoding($res,"GBK","UTF-8");$res = iconv("gb2312","utf-8",$res);}return $res;}
$res 中就能查看到返回的结果
页面展示二维码效果
PHP 之建行龙支付-被扫(商家扫码客户二维码),扫码枪使用:https://blog.csdn.net/weixin_42674576/article/details/122380110?spm=1001.2014.3001.5501
PHP 之建行龙支付-主扫(客户扫码商家二维码),获取二维码信息相关推荐
- 微信扫码签到系统asp源码写的,并且获取签到者位置信息入库保存
不管是工作会议,还是员工活动,每次集会基本都需要签到.传统的纸质签到效率低下,找名字费时,排队费时,更可怕的是好不容易轮到了你,却发现你的名字在隔壁人堆里那张纸上. 此代代码的功能是,集会现场只需贴出 ...
- 使用码上登录实现微信扫一扫登录
微信扫一扫登录测试 码上登录 开发和使用 登录的时序图 准备工作 后台开发 前端显示 码上登录 码上登录是一个小程序,对个体开发者提供了免费的微信扫一扫登录入口,因为微信开发者需要企业认证,没办法在个 ...
- 【Java实战】微信Native扫码支付(主扫)开发详解
文章目录 前言 一.功能实现 1.前置条件 2.代码实现 二.具体步骤 1.直接调用微信接口 2.基于binarywang对接 2.1.引入依赖 2.2.编写配置类 2.3.编写后台方法 总结 前言 ...
- SpringBoot工程接入第三方支付渠道支付宝(C扫B支付)
目录 1.C扫B的概念 2.支付宝接口调研 2.1.产品列表 2.2.线下场所接入支付 3.配置支付宝沙箱环境 3.1.简介 3.2.注册开放平台账号 3.3.配置密钥 3.4.沙箱账号 4.生成二维 ...
- 微信支付教程系列之扫码支付
目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 (四)微信公众号开发之网页授权获取用户基本信息 (五)微信公众号开发之网页中及 ...
- C# 微信支付教程系列之扫码支付
微信支付教程系列之扫码支付 今天,我们来一起探讨一下这个微信扫码支付.何为扫码支付呢?这里面,扫的码就是二维码了,就是我们经常扫一扫的那种二维码图片,例如,我们自己添加好友的时候,可以通过输入对方的微 ...
- 随即付|蓝牙支付模块,自制扫码付费开关
扫码付费演示视频:使用蓝牙支付模块,把空气净化器改造成共享的_哔哩哔哩_bilibili 立创开源地址:低成本的蓝牙扫码支付模块 - 嘉立创EDA开源硬件平台 应用领域: ♦ 扫码付费插座 ♦ 洗衣机 ...
- 盒子支付APP下载与扫码通M800设置
第一步:下载盒子支付APP 第2步:登录APP,注册商户 第3步:下载客户端,打开软件,选择扫码通M800,连接好设备. 第4步:下载 佳易王进销存管理或佳易王触摸屏点餐系统,打开软件,将应付款金额和 ...
- 2018年移动支付调研报告:扫码碾压NFC 单笔1000元以下占86%
为全面.深入了解移动支付业务应用现状,准确把握个人用户年龄.收入.学历等基本属性以及使用习惯变化,持续为成员单位提供有价值的调研信息服务,中国支付清算协会移动支付和网络支付应用工作委员会(以下简称&q ...
- 支付宝支付-当面付之扫码支付「扫码支付」
前言 支付宝支付-沙箱环境使用 支付宝支付-支付宝PC端扫码支付 支付宝支付-手机浏览器H5支付 支付宝支付-当面付之扫码支付「本文」 当面付包含两种支付方式:商品条形码支付 + 扫码支付 经过前面两 ...
最新文章
- .NET 4.5 基类库中的新增功能
- FLASH模仿苹果菜单源码.(AS苹果菜单源码)
- java怎么用return代替else_java – 从一个隐含或明确的“else”方法返回,还是用一个“return”语句返回?...
- osqa java_从LSM-Tree、COLA-Tree谈到StackOverflow、OSQA(召唤前端)
- 使用 SAP Business Application Studio 搭建 CAP Java 开发环境
- Clipboard.js实现点击自动复制内容的功能
- 拓扑排序---AOV图
- python定时模块:apscheduler
- Swift 5用Template自动创建VIPER架构代码
- SQL十进制和十六进制相互转换
- Actran助力汽车全频率段声学响应预测与优化
- 那点房事(难以齿口)
- matlab-m文件常用积分函数-ode45含有时变参数用法/菜鸟理解4
- ros_arduino_bridge功能包集的使用错误及解决方法总结
- 数据库的第一范式、第二范式、第三范式,BCNF范式
- vs2015官方下载链接
- CF - 158B - Taxi
- 面试阿里巴巴有多难,看看面经你就知道了
- 华为操作系统 28 年史
- 【C语言】大厂指针笔试题(1码+1图)详解——程序结果判断题
热门文章
- “食尸鬼行动”攻击30多个国家超过130家企业 包括中国
- zigbee学习之串口通信
- 台式计算机连接投影仪无信号,投影仪连接电脑没反应 电脑连接投影仪无信号解决办法...
- 安卓手机投屏到win10电脑无需安装任何软件(电脑和手机必须连接同一网络或者wifi)【投影到此电脑灰色无法操作怎么办?】by qiweb 端午节
- 跨境电商shopee这个平台怎么样?百万shopee卖家笑了,不要再犹豫了
- C语言中空字符串长度,C语言中求字符串的长度
- linux 16进制编辑器 知乎,狂揽2500星,开源十六进制编辑器登顶GitHub热榜
- 图灵大会 | 新观点:AI盛世,其实我们离得还很远
- github上springcloud 项目框架的前后端的启动(2021-08-05)
- 【汽车】新能源汽车的分类