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

我来为您详细讲解“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文件上传简单实现方法的攻略,包含过程细节和两个具体示例: 1. 使用HTML表单创建上传文件控件 在HTML表单中加入文件上传控件,这样可以让用户选取需要上传的文件。表单中主要包含以下内容: <form action="upload.php" method="post" enctype=&quot…

    PHP 2023年5月26日
    00
  • php实现微信公众号主动推送消息

    关于“php实现微信公众号主动推送消息”的攻略,我们可以分为以下几个步骤: 第一步:获得微信公众号的开发者账号和配置 在微信公众平台账号中心注册账号,并按照要求进行开发者认证。在微信公众平台中创建自己的公众号,并配置消息模板和服务器地址,将服务器地址填写到公众号设置中。 第二步:服务器端使用PHP提供接口 服务器端使用PHP编写具有接收微信消息和发送微信消息…

    PHP 2023年5月23日
    00
  • PHP 函数call_user_func和call_user_func_array用法详解

    PHP 函数call_user_func和call_user_func_array用法详解 在 PHP 中,我们可以通过调用函数来完成某些操作。但有时候,我们需要在运行时动态地调用函数,这时就可以使用 call_user_func 和 call_user_func_array 函数,本文将对这两个函数的使用方法进行详细讲解。 call_user_func c…

    PHP 2023年5月26日
    00
  • 一个php短网址的生成代码(仿微博短网址)

    生成短网址是一个常见的需求。php是一种强大的后端编程语言,可以使用其来生成一个简洁的短网址。 下面是一个仿微博短网址的php短网址生成代码的攻略,包含以下步骤: 步骤1:建立数据表 首先需要创建一个MySQL数据库,用于存储短网址和原始网址之间的映射关系。可以使用下面的SQL语句在MySQL中创建一个数据表(表名为urls): CREATE TABLE `…

    PHP 2023年5月23日
    00
  • PHP函数eval()介绍和使用示例

    PHP函数eval()介绍和使用示例 什么是eval()函数 eval()函数是PHP中的一种特殊函数,他可以对字符串进行解析并执行其中的PHP代码。 eval()函数的使用示例 示例1:动态生成变量名并将对应值赋予变量 <?php // 定义一个数组 $data = [ ‘username’ => ‘Tom’, ‘age’ => 20, …

    PHP 2023年5月26日
    00
  • 基于PHPexecl类生成复杂的报表表头示例

    下面我将详细讲解“基于PHPExcel类生成复杂的报表表头”的完整攻略。 准备工作 首先,需要在服务器端安装PHPExcel类库,可以参考PHPExcel类库的官方文档。 接着,在您的php文件中引入PHPExcel类库并实例化对象: require_once "PHPExcel/PHPExcel.php"; $excel = new P…

    PHP 2023年5月26日
    00
  • PHP 数组和字符串互相转换实现方法

    让我来为你详细讲解“PHP 数组和字符串互相转换实现方法”的完整攻略。 1. 数组转字符串 将数组转换为字符串的方法有多种,其中比较常用的方法是使用 implode() 函数。 1.1 implode() 函数 implode() 函数将数组的值连接成一个字符串,可以指定连接符号。函数原型如下: string implode(string $glue , a…

    PHP 2023年5月26日
    00
  • PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解

    PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解 创建文件 可以使用PHP的fopen()函数来创建文件,下面是示例代码: $filename = "example.txt"; $file = fopen($filename, "w") or die("无法创建文件"); fclose($f…

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