php版银联支付接口开发简明教程

下面是关于“php版银联支付接口开发简明教程”的完整攻略。

一、前置知识

在开始使用银联支付接口进行开发之前,需要掌握以下知识:

  1. PHP基础知识
  2. 网络编程基础知识
  3. HTTP协议基础知识
  4. rsa加密算法基础知识

二、准备工作

在进行银联支付接口开发之前,需要进行以下准备工作:

  1. 申请商户号和商户秘钥
  2. 下载工具包并解压
  3. 了解银联支付接口开发文档

三、接口集成

  1. 引入相关库文件
require "lib/SDKConfig.php";
require "lib/secureUtil.php";
require "lib/LogUtil.php";
  1. 设置接口请求参数
$params = array(
    'version' => '5.0.0',
    'encoding' => 'utf-8',
    'certId' => getSignCertId (),
    'txnType' => '01',
    'txnSubType' => '01',
    'bizType' => '000201',
    'frontUrl' => FRONT_NOTIFY_URL,//前台通知地址
    'backUrl' =>  BACK_NOTIFY_URL,//后台通知地址
    'signMethod' => '01',
    'channelType' => '07',
    'accessType' => '0',
    'currencyCode' => '156',
    'merId' => '898340183922222',
    'orderTime' => date ( 'YmdHis' ),
    'orderId' => date ( 'YmdHis' ) . rand ( 1000, 9999 ),
    'txnAmt' => '100',
    'txnTimeout' => date ( 'YmdHis', strtotime('+15 minutes')),
);
  1. 签名
sign($params);
  1. 发送请求
$result = post($params, SDK_FRONT_TRANS_URL);

至此,银联支付接口集成完毕。

四、示例说明

下面是两个示例说明:

示例一

用户购买商品时,会跳转到银联支付页面,用户输入银行卡信息,银行卡授权完成后,银联会将支付结果返回给商户。

//处理银联支付结果
if( $_POST && isset( $_POST['signature'] ) && isset( $_POST['respCode'] ) &&  $_POST['respCode'] == '00' ){
    $params = array(
        'version' => $_POST['version'],
        'encoding' => $_POST['encoding'],
        'certId' => getSignCertId (),
        'signature' => $_POST['signature'],
        'txnType' => $_POST['txnType'],
        'txnSubType' => $_POST['txnSubType'],
        'bizType' => $_POST['bizType'],
        'accessType' => $_POST['accessType'],
        'merId' => $_POST['merId'],
        'orderId' => $_POST['orderId'],
        'txnTime' => $_POST['txnTime'],
        'txnAmt' => $_POST['txnAmt'],
        'currencyCode' => $_POST['currencyCode'],
        'queryId' => $_POST['queryId'],
        'respCode' => $_POST['respCode'],
        'respMsg' => $_POST['respMsg']
    );
    //验证签名,如果验证通过,则处理订单
    if ( verify ( $params ) ) {
        //处理订单
        orderProc('success', $params);
    } else {
        orderProc('failure', $params);
    }
}

示例二

商户下单成功后,发起支付请求,银联处理完成后,将支付结果返回给商户。

//商户下单成功后再调用此接口
$params = array(
    'version' => '5.0.0',
    'encoding' => 'utf-8',
    'certId' => getSignCertId (),
    'txnType' => '01',
    'txnSubType' => '01',
    'bizType' => '000201',
    'frontUrl' => FRONT_NOTIFY_URL,//前台通知地址
    'backUrl' =>  BACK_NOTIFY_URL,//后台通知地址
    'signMethod' => '01',
    'channelType' => '07',
    'accessType' => '0',
    'currencyCode' => '156',
    'merId' => '898340183922222',
    'orderTime' => date ( 'YmdHis' ),
    'orderId' => date ( 'YmdHis' ) . rand ( 1000, 9999 ),
    'txnAmt' => '100',
    'txnTimeout' => date ( 'YmdHis', strtotime('+15 minutes')),
);

//签名
sign($params);

//发送请求
$result = post($params, SDK_FRONT_TRANS_URL);

以上就是“php版银联支付接口开发简明教程”的完整攻略,希望对你有所帮助。

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

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

相关文章

  • php实现文件下载更能介绍

    实现文件下载需要两个步骤:1. 服务器设置响应头;2. 创建文件下载链接。 1.服务器设置响应头 服务器通过设置响应头来告诉浏览器当前请求是下载文件,浏览器收到响应头后会按照响应头的内容来处理响应体,从而实现文件下载。 使用PHP来设置响应头,需要使用header()函数来设置。示例代码如下: //设置响应头 header(‘Content-Type: ap…

    PHP 2023年5月27日
    00
  • 分析JS单线程异步io回调的特性

    分析 JS 单线程异步 IO 回调的特性可以从以下几个方面进行: 单线程 JavaScript 是一门单线程语言,它从设计之初就决定了在同一时刻只能执行一个程序代码块。这意味着当代码被执行的时候,只有一个调用栈。当一段程序被执行的时候,它会依次进入调用栈中。当某个函数被执行时,它也会进入调用栈中。当该函数执行结束时,它会从调用栈中弹出。这样在业务逻辑上就很难…

    PHP 2023年5月27日
    00
  • php 数组处理函数extract详解及实例代码

    PHP中,数组是一种非常重要的数据类型,它可以存储大量数据并进行各种操作。PHP内置了许多用于处理数组的函数,其中一个比较有用的函数是extract()。本文将详细讲解extract函数的用法及实例代码。 什么是extract函数 extract是PHP内置的一个数组处理函数,用于将数组中的元素转换为独立的变量。它的原型如下: extract(array $…

    PHP 2023年5月26日
    00
  • php gzip压缩输出的实现方法

    下面就来详细讲解一下“php gzip压缩输出的实现方法”的完整攻略。 什么是GZip压缩? GZip压缩是一种将文本数据以及网页等HTTP内容压缩为更小体积的技术。经过GZip压缩的文件能够通过更小的数据尺寸进行传输,从而提高传输效率和内容的下载速度。 PHP如何实现GZip压缩? 首先,我们需要理解HTTP协议中GZip压缩的实现过程。HTTP协议中,客…

    PHP 2023年5月26日
    00
  • PHP新手上路(九)

    下面是对“PHP新手上路(九)”攻略的详细讲解。 PHP新手上路(九):从数据库中读取数据 相关概念 在PHP中,可以通过一些扩展库来连接数据库进行数据操作,比如常用的MySQL、SQLite等。在本篇教程中,我们将基于PHP的MySQL函数库,来介绍如何从数据库中读取数据。 连接数据库 在PHP中,可以使用mysqli_connect函数来连接MySQL数…

    PHP 2023年5月26日
    00
  • php中flush()、ob_flush()、ob_end_flush()的区别介绍

    当在PHP中输出内容时,页面不会马上显示信息,而是会缓存起来并在执行完PHP程序后一次性输出,这会导致页面等待过长时间,给用户带来不好的体验。为了解决这个问题,我们需要使用三个函数: flush()、ob_flush()、ob_end_flush()。 一、flush() 1.1 flush()函数的作用 flush()函数会将PHP输出的内容立即发送到浏览…

    PHP 2023年5月26日
    00
  • php截取html字符串及自动补全html标签的方法

    PHP截取HTML字符串方法 在PHP中,我们可以使用DOMDocument类来解析HTML文档,并且可以使用XPath查询语言来定位HTML元素。 下面是一个示例,演示如何使用DOMDocument类来截取HTML字符串: // 要截取的HTML字符串 $html = ‘<div class="content"> <h…

    PHP 2023年5月26日
    00
  • PHP简单实现DES加密解密的方法

    下面是PHP简单实现DES加密解密的方法的攻略: 简介 DES(Data Encryption Standard)为一种使用密钥加密的对称式加密算法,是经典密码学中一种被广泛使用的加密算法。在PHP中,使用openssl_encrypt和openssl_decrypt函数可以轻松地实现DES加密解密操作。 加密操作 使用openssl_encrypt函数进行…

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