php版交通银行网银支付接口开发入门教程

yizhihongxing

我来为您详细讲解“php版交通银行网银支付接口开发入门教程”的完整攻略。

简介

交通银行网银支付接口是一种在线支付方式,它基于交通银行的网银平台,为具备注册交通银行网银服务资格的商户提供在线支付收款业务。本教程主要介绍如何在 PHP 环境下开发交通银行网银支付接口。

环境要求

  • PHP 版本:5.2.0+
  • OpenSSL 扩展
  • CURL 扩展

支付流程

交通银行网银支付流程主要包含以下几个步骤:

  1. 商户网站通过提交订单接口生成一个唯一订单号,将订单信息返回给网银平台。
  2. 网银平台对订单信息进行验证和处理,返回一个交易流水号和支付页面地址。
  3. 商户网站跳转到支付页面地址,客户在该页面进行支付。
  4. 支付成功后,网银平台将支付结果通知商户网站。

接口说明

1. 提交订单接口

该接口用于在商户网站生成一个唯一订单号,并返回订单信息给网银平台。

请求地址:https://pay.cmbchina.com/netpayment/BaseHttp.dll?MB_EUserPay

请求参数:

参数名 类型 是否必填 说明
dateTime string 请求时间,格式:yyyymmddhhmmss
branchNo string 归属商户号
merchantNo string 商户号
date string 订单日期,格式:yyyymmdd
orderNo string 订单号
amount string 订单金额,单位:分
expireTimeSpan string 订单有效期时间,单位:分钟。默认为 1440(即 24 小时)。
payNoticePara string 商户指定服务器接收支付通知的地址和参数,不超过 255 个字符。

请求示例:

<?php
    $dateTime = date('YmdHis');
    $branchNo = '000000';
    $merchantNo = '1234567890';
    $date = date('Ymd');
    $orderNo = '20210527001';
    $amount = '1000';

    // 计算签名
    $signature = md5($dateTime . $branchNo . $merchantNo . $orderNo . $amount);

    // 构造请求参数
    $data = array(
        'dateTime' => $dateTime,
        'branchNo' => $branchNo,
        'merchantNo' => $merchantNo,
        'date' => $date,
        'orderNo' => $orderNo,
        'amount' => $amount,
        'expireTimeSpan' => '1440',
        'payNoticePara' => '',
        'signature' => $signature,
    );

    // 发起请求
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://pay.cmbchina.com/netpayment/BaseHttp.dll?MB_EUserPay');
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    curl_close($ch);

    // 解析响应
    parse_str($response, $result);
    print_r($result);
?>

响应示例:

Array
(
    [dateTime] => 20210527150625
    [branchNo] => 000000
    [merchantNo] => 1234567890
    [date] => 20210527
    [orderNo] => 20210527001
    [amount] => 1000
    [status] => 0    // 0:成功;其它:失败
    [msg] => 调用成功
    [cmbBankCode] => 
    [bankSeq] => 
    [payUrl] => https://netpay.cmbchina.com/netpayment/BaseHttp.dll?prepay&payorderid=20210527001    // 支付页面地址
    [signature] => 8422e5d9d96b0d7e27087c04676a2e68
)

2. 支付结果通知接口

该接口用于网银支付成功后,将支付结果通知商户服务器。

请求参数:

参数名 类型 是否必填 说明
dateTime string 请求时间,格式:yyyymmddhhmmss
branchNo string 归属商户号
merchantNo string 商户号
date string 订单日期,格式:yyyymmdd
orderNo string 订单号
amount string 订单金额,单位:分
CMBNETPAYMSG string 处理结果
signature string 签名

处理结果说明:

  • Succeed:支付成功
  • Fail:支付失败

响应参数:

商户服务器应在收到交通银行通知后,返回以下字符串给交通银行,以告知交通银行已成功处理通知并完成该交易操作。

【OK】【20210527155533】【20210527】【1234567890】【20210527001】

PHP 示例:

<?php
    // 验证签名
    $signature = md5($dateTime . $branchNo . $merchantNo . $orderNo . $amount . $CMBNETPAYMSG . $key);
    if ($signature !== $request['signature']) {
        echo '签名错误';
        exit;
    }

    // 处理支付结果
    if ($CMBNETPAYMSG === 'Succeed') {
        // 支付成功
        // 修改订单状态等操作
    } else {
        // 支付失败
    }

    // 返回确认信息给交通银行
    echo '【OK】【' . $dateTime . '】【' . $date . '】【' . $merchantNo . '】【' . $orderNo . '】';
?>

总结

本文介绍了交通银行网银支付接口的开发流程和接口说明。对于想要在自己的网站集成支付功能的开发者,可以根据本教程进行参考和实践。需要注意的是,其中涉及到的安全问题和接口细节需要仔细考虑,确保支付能够稳定可靠地运行。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php版交通银行网银支付接口开发入门教程 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • php中变量及部分适用方法

    下面是详细讲解“php中变量及部分适用方法”的完整攻略。 变量 在PHP中,变量是用于存储值的容器。变量可以是各种数据类型,比如数值、字符串、布尔值等。PHP的变量名是区分大小写的。变量名只能由字母、下划线和数字组成,并且不能以数字开头。 定义变量 在PHP中,变量的定义以$符号开头,后面跟着变量名和赋值操作符=,再跟着变量的值。 示例代码: $name =…

    PHP 2023年5月23日
    00
  • php 全文搜索和替换的实现代码

    实现php全文搜索和替换需要用到正则表达式(regex)。下面是用PHP实现全文搜索和替换的攻略,以及两个示例说明。 步骤一:打开文件并读取内容 首先,要用PHP的文件操作函数打开文件并读取文件内容,保存到一个变量中。这里,我们使用的是file_get_contents函数来读取文件: $content = file_get_contents(‘file.t…

    PHP 2023年5月23日
    00
  • php中字符串和整数比较的操作方法

    要比较PHP中的字符串和整数,需要使用比较运算符。比较运算符用于比较两个值的大小或相等性,并返回一个布尔值(true或false)。以下是PHP中可用的比较运算符: 运算符 描述 == 等于(只比较值,不比较数据类型) === 全等于(既比较值,也比较数据类型) != 不等于(只比较值,不比较数据类型) !== 不全等于(既比较值,也比较数据类型) <…

    PHP 2023年5月26日
    00
  • php实现URL加密解密的方法

    实现URL加密解密需要使用PHP中的两个函数,一个是urlencode()函数,用于将数据进行URL编码,避免中文或特殊符号影响URL的解析;另一个是base64_encode()和base64_decode()函数,用于将字符串进行加密或解密。 下面是一个简单的加密解密示例: URL加密示例 <?php $data = ‘这是一条待加密的数据’; $…

    PHP 2023年5月26日
    00
  • element-ui 的el-button组件中添加自定义颜色和图标的实现方法

    Element UI 是一个基于 Vue.js 的桌面端组件库,提供了丰富的 UI 组件,包括按钮组件 el-button。在实际开发中,为了满足需求,我们可能需要对 el-button 组件进行自定义,比如添加自定义颜色和图标。本文就来详细讲解如何实现这一功能。 添加自定义颜色 我们可以通过为 el-button 组件添加 class 属性,再在 CSS …

    PHP 2023年5月30日
    00
  • php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法

    PHP Curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法 1. Curl是什么 Curl是一个非常强大的用来通讯的工具。它支持很多网络协议,如HTTP、HTTPS、FTP、Telnet,还支持各种代理。使用Curl可以让我们实现模拟用户在浏览器上访问网站,方便进行数据的爬取、抓取 。 2. Curl的基本使用 以下代码是基于PHP Curl执行…

    PHP 2023年5月27日
    00
  • PHP随机字符串生成代码(包括大小写字母)

    生成随机字符串是WEB应用程序中经常遇到的一个问题,例如用于生成验证码或随机令牌等。在PHP中,可以通过使用rand()或mt_rand()函数结合使用字符串函数来生成随机字符串。以下是一个完整的攻略来生成包含大小写字母的随机字符串。 1. 使用rand()函数生成随机数 rand()函数是PHP中常用的生成随机数的函数,它可以生成一个介于两个指定整数之间的…

    PHP 2023年5月23日
    00
  • php微信小程序解包过程实例详解

    PHP微信小程序解包过程实例详解 前言 微信小程序在开发和调试时,会将代码打包成.wxa格式,这无法直接查看和修改代码,需要进行解包操作。 本文将介绍使用PHP对微信小程序进行解包的过程,包括解码,解密和解压缩等步骤。 解包准备 获取.wxa文件 首先需要在微信小程序开发者工具中,将代码打包成.wxa格式,然后将其下载到本地。 安装PHP环境 在本机安装PH…

    PHP 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部