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中的数组操作函数整理”: 简介 PHP中的数组操作函数很多,其中一些十分重要。本篇攻略主要整理了PHP中常用的一些数组操作函数,包括数组的创建、遍历、排序、查找等操作,以及示例说明。 创建数组 array函数 通过array函数可以创建一个新的数组,语法如下: array(value1, value2, …) 其中value可以是一个变…

    PHP 2023年5月26日
    00
  • PHP读取网页文件内容的实现代码(fopen,curl等)

    如果要在 PHP 中读取网页文件的内容,可以使用 fopen() 函数或 curl 库。下面将分别讲解它们的实现代码及其使用方法。 使用 fopen() 函数读取网页文件 fopen() 函数可以实现打开一个 URL (如一个网页文件),并返回该文件的句柄。我们可以使用 fgets() 函数读取文件中的一行或 file_get_contents() 函数读取…

    PHP 2023年5月23日
    00
  • php中的注释、变量、数组、常量、函数应用介绍

    下面是关于“php中的注释、变量、数组、常量、函数应用介绍”的完整攻略: 注释 在PHP中,注释是被忽略的文本,用于为代码添加说明,以方便其他开发人员阅读和理解代码。PHP中有两种类型的注释: 单行注释:以//开头,直到行末为止。 php // 这是一个单行注释 块注释:以/*开头,以*/结尾,可用于跨越多个行。 php /* * 这是一个 * 块注释 */…

    PHP 2023年5月25日
    00
  • PHP 读取文件内容代码(txt,js等)

    下面是关于PHP读取文件内容的攻略: 准备工作 在开始读取文件之前,需要准备好要读取的文件,确保文件可读可写,以及被PHP所认可。一般来说,我们使用fopen()函数打开文件,代码如下: $file = fopen("file.txt", "r"); 上述代码实现了以只读方式打开名为“file.txt”的文件,若要进行…

    PHP 2023年5月26日
    00
  • 实例讲解php将字符串输出到HTML

    以下是“实例讲解PHP将字符串输出到HTML”的完整攻略: 基本概念 在PHP中,我们可以使用echo、print和printf等方法来将字符串输出到HTML页面中。其中echo是最常用的一种方法。 echo方法 echo方法可以输出一个或多个字符串,其语法为: echo string1, string2, string3, … 在调用时,可以将多个字符…

    PHP 2023年5月26日
    00
  • 微信小程序有哪些小程序可以预订酒店?可以预订酒店的微信小程序汇总

    微信小程序预订酒店攻略 微信小程序是指可以直接在微信内部访问的小型应用程序。预订酒店是微信小程序中比较常见的功能之一。下面我们来介绍一些常用的微信小程序预订酒店的方式和一些可以预订酒店的微信小程序。 常用的微信小程序预订酒店方式 第一种方式:通过酒店官方小程序预订 有很多酒店都推出了自己的微信小程序,用户可以通过这些小程序轻松地预订到酒店客房。使用这种方式预…

    PHP 2023年5月30日
    00
  • PHP+jQuery实现即点即改功能示例

    下面我将详细讲解“PHP+jQuery实现即点即改功能示例”的完整攻略。 一、 确定HTML结构 首先,我们需要确定HTML结构。一般来说,实现即点即改(即异步修改页面内容)需要一个可编辑的HTML标签,如input或textarea。同时,为了实现异步刷新,我们需要给要刷新的内容添加一个id属性。具体示例如下: <p id="editabl…

    PHP 2023年5月26日
    00
  • php cache类代码(php数据缓存类)

    PHP Cache类(也称为PHP数据缓存类)是一种非常有用的工具,可以有效地缓存和管理您的网站或应用程序中的数据。在这里,我将为您提供一个完整的攻略,以帮助您了解如何使用PHP Cache类来提高您的网站或应用程序的性能和响应速度。 什么是PHP Cache类? PHP Cache类是一个开源的PHP类,旨在简化数据缓存和管理的过程。它可用于将一些特定的数…

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