这篇文章主要介绍了php版银联支付接口开发的方法,结合实例形式分析了php银联支付接口开发的具体流程与相关操作技巧,需要的朋友可以参考下

本文实例讲述了php版银联支付接口开发的方法。分享给大家供大家参考,具体如下:

支付接口现在有第三方的支付接口也有银行的支付接口。这里就来介绍php版本银联支付接口开发的方法。

银联支付,首先要注意二重要的部分:

PHP运行环境是5.4.18以上

开了扩展openssl

开发手册上面的列子只做参考,因为基本都是错的。你可以试着去官网下一个demo。。。注意现在银联开发,没有测试密钥提供,只能在正式环境开发

下面是我用ThinkPHP编写的一个支付类/**

* 银联支付 v0.1

* @auther:Summer;

* @date:20151202

* **/

class NetPayAction extends BaseAction{

//在类初始化方法中,引入相关类库

public function _initialize() {

header("Content-type:text/html;charset=utf-8");

vendor('Netpay.util.common',"",".php"); //导入加密核心文件夹

vendor('Netpay.util.SecssUtil',"",".class.php"); //导入加密核心文件夹

vendor('Netpay.util.Settings_INI',"",".php"); //导入加密核心文件夹

vendor('Netpay.util.Settings',"",".php"); //导入加密核心文件夹

$this->securityPropFile= $_SERVER['DOCUMENT_ROOT'] . "/ThinkPHP/Extend/Vendor/Netpay/config/security.properties"; //谁知道这是啥,反正他们要我加的

$this->b2cPaySend = __APP__."/Index/NetPay/b2cPaySend";

$this->b2cRefundSend = __APP__."/Index/NetPay/b2cRefundSend";

$this->b2cQuerySend = __APP__."/Index/NetPay/b2cQuerySend";

$this->;MerBgUrl = __APP__."/Index/NetPay/MerBgUrl";

$this->MerPageUrl = __APP__."/Index/NetPay/MerPageUrl";

}

public function index()

{

$paramArray=array (

'MerId' => '商户号',

'MerOrderNo' => '0000001944663232',

'OrderAmt' => '1',

'TranDate' => '20151219',

'TranTime' =>'171248',

'TranType' => '0001',

'BusiType' =>'0001',

'Version' => '20140728',

'CurryNo' => 'CNY',

'AccessType' =>; '0',

'CommodityMsg' => '测试商品1号',

'MerPageUrl' => $this->MerBgUrl,

'MerBgUrl' =>$this->MerPageUrl,

'MerResv' => 'MerResv',

);

if (count($paramArray) >0) {

$dispatchUrl = $this->b2cPaySend;

$transResvedJson = array();

$cardInfoJson = array();

$sendMap = array();

foreach ($paramArray as $key => $value) {

if (isEmpty($value)) {

continue;

}

if (startWith($key, "trans_")) {

$key = substr($key, strlen("trans_"));

$transResvedJson[$key] = $value;

} else

if (startWith($key, "card_")) {

$key = substr($key, strlen("card_"));

$cardInfoJson[$key] = $value;

} else {

$sendMap[$key] = $value;

}

}

$transResvedStr = null;

$cardResvedStr = null;

if (count($transResvedJson) >0) {

$transResvedStr = json_encode($transResvedJson);

}

if (count($cardInfoJson) > 0) {

$cardResvedStr = json_encode($cardInfoJson);

}

$secssUtil = new SecssUtil();

if (! isEmpty($transResvedStr)) {

$transResvedStr = $secssUtil->decryptData($transResvedStr);

$sendMap["TranReserved"] = $transResvedStr;

}

if (! isEmpty($cardResvedStr)) {

$cardResvedStr = $secssUtil->decryptData($cardResvedStr);

$sendMap["card_"] = $cardResvedStr;

}

$securityPropFile = $this>securityPropFile;

$secssUtil->init($securityPropFile);

$secssUtil->sign($sendMap);

$sendMap["Signature"] = $secssUtil->getSign();

$_SESSION = $sendMap;

header("Location:" . $dispatchUrl);

}

}

public function b2cPaySend(){

layout(false);

$settings = new Settings_INI();

$settings->oad($this->securityPropFile);

$pay_url = "https://payment.chinapay.com/CTITS/service/rest/page/nref/000000000017/0/0/0/0/0";

$html = "

;";

$params = "TranReserved;MerId;MerOrderNo;OrderAmt;CurryNo;TranDate;SplitMethod;BusiType;MerPageUrl;MerBgUrl;SplitType;MerSplitMsg;PayTimeOut;MerResv;Version;BankInstNo;CommodityMsg;Signature;AccessType;AcqCode;OrderExpiryTime;TranType;RemoteAddr;Referred;TranTime;TimeStamp;CardTranData";

foreach ($_SESSION as $k =>$v) {

if (strstr($params, $k)) {

$html .= "";

}

}

$html .= "";

$html .= "";

$this->html = $html;

$this->display();

}

public function pgReturn(){

if ($_POST) {

if (count($_POST) > 0) {

$secssUtil = new SecssUtil();

$securityPropFile = $this>securityPropFile;

$secssUtil->init($securityPropFile);

$text = array();

foreach($_POST as $key=>$value){

$text[$key] = urldecode($value);

}

if ($secssUtil->verify($text)) {

//支付成功

$_SESSION["VERIFY_KEY"] = "success";

} else {

//支付失败

$_SESSION["VERIFY_KEY"] = "fail";

}

}

}

}

}

银联支付应该是算比较简单的!!

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

php银联支付接口 demo,php版银联支付接口的开发相关推荐

  1. php银联支付接口 demo,php版银联支付接口开发简单实例详解

    这篇文章主要介绍了php版银联支付接口开发的方法,结合实例形式分析了php银联支付接口开发的具体流程与相关操作技巧,需要的朋友可以参考下 支付接口现在有第三方的支付接口也有银行的支付接口.这里就来介绍 ...

  2. php对接支付宝当面付接口视频教程,支付宝当面付接口demo(面对面扫码支付)

    [实例简介] 一.免责申明 DEMO仅供参考,实际开发中需要结合具体业务场景修改使用. 二.运行环境: .net framework 3.5以上:visual studio 2010以上 三.使用说明 ...

  3. ASP对接验证码短信接口DEMO示例说明

    简单实用的ASP短信接口demo <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <% '接口类型:互亿无线触 ...

  4. 第三方银联支付接口对接_聊聊三方支付对接那点事儿(附Demo)

    每一个做过支付对接的少年上辈子都是折翼的天使.--题记 三方支付对接是一件比较有意思的事儿,今天就拿这个话题来掰扯掰扯.相信每个做过支付对接的小伙伴都有段血与火的经历,那段日子只有痛苦与煎熬,恨不得大 ...

  5. 微信支付 自动退款 php,银联在线、微信、支付宝自动退款接口文档总结和API地址...

    关于微信和支付宝自动退款接口的接入总结 一:支付宝的自动退款接口接入 支付宝官方api:https://doc.open.alipay.com/doc2/apiDetail.htm?spm=a219a ...

  6. Magento银联支付模块|Magento1.9 Unionpay中国银联支付插件|支持PC、手机移动端支付|2016最新Unionpay5.0.0支付接口...

    2019独角兽企业重金招聘Python工程师标准>>> 功能 严格按照中国银联Unionpay)接口文档编写代码. 中国银联(Unionpay)异步通知机制,确保订单状态及时更新. ...

  7. 银联在线支付5.0.0版-仿真端

    背景 银联在线支付本身为开发人员提供了测试环境,但是在某些项目组中,无法连接外部网络,这样就给需要开发银联在线支付的人员造成了一个比较头疼的问题. 通过对银联在线支付SDK研究,银联支付5.0.0版( ...

  8. java 实现银联B2B、B2C、无卡支付

    说明 公司要求接入银联的网银支付,之前很想当然的以为和支付宝或者微信一样简单,所以自己捣鼓了半天也没捣鼓出来,相关的资料也不好查,只能找银联的技术要了一份demo,因为银联的代码非常老,用的是jsp+ ...

  9. WordPress按钮秒支付插件发布,支持微信支付,支付宝,银联,京东,苏宁,易宝支付...

    痛点: 我们用WordPress建设网站和开发移动应用,有时候我们其实不需要太多的流程,只是需要一个收款通道,但是可能对支持的渠道更加关注,特别是手机应用.所以WordPress按钮秒支付插件诞生了, ...

  10. 银联在线支付---利用测试案例代码模拟支付应用(修改)

    一.工程搭建 新建一个Web工程,命名为PayOnLine,把你下载好的案例代码拷贝到你的工程下,我的代码目录如下: acp_sdk.properties配置文件需要放在类根路劲下,里面的参数配置信息 ...

最新文章

  1. 【转载】邻接表表示法
  2. 聊聊电商系统中常见的9大坑,库存超卖、重复下单、物流单ABA...
  3. 瑞士军刀——Pandoc
  4. mui 加载动画_mui 等待动画loading mui.showLoading
  5. crontab wget命令定时执行thinkphp的控制器实现定时任务
  6. NIO与传统IO的区别(形象比喻)
  7. 《关键对话——注意观察,如何判断对话氛围是否安全》读书笔记(四)
  8. 回顾丨2021数据库大咖讲坛(第6期)视频PPT互动问答
  9. python备份发包脚本_用Python写脚本,实现完全备份和增量备份的示例
  10. 解决误删/bin/bash问题
  11. pythonmkdir语法错误_Python mkdir一个有难度的问题
  12. Linux-2.6.21的负载均衡
  13. 网络安全图书馆文件下载
  14. 天线座和连接器SMA、U.FL、IPX、IPEX
  15. 问个globle的问题,如何定时更新论坛的数据啊?
  16. 技巧:屏幕長亮 兩種方式
  17. upupoo启动不了 mysql_【upupoo动态桌面壁纸和MySQL API 中文手册哪个好用】upupoo动态桌面壁纸和MySQL API 中文手册对比-ZOL下载...
  18. 微信生态的渗透与价值
  19. H5+CSS3 背景图毛玻璃效果实现方案
  20. 来自远方的“僵尸之手”

热门文章

  1. 硬件木马检测方法概述
  2. php js广告,JavaScript_用JS调用谷歌 AdSense广告的方法, 具体的google广告的js文件做 - phpStudy...
  3. 【css】鼠标禁用样式
  4. CMake 编译时出现错误 coffe转换到 COFF 期间失败: 文件无效或损坏
  5. 广西建工OA系统office插件显示问题解决方案
  6. 图解SpringMVC工作流程
  7. Latex 学术撰写工具推荐(在线、Windows、Mac、Linux)
  8. java 实现 PTF远程连接带有中文下载,解决文件损失
  9. 请问什么是AIX 5L的PTF?
  10. 宜人贷宜人蜂巢金融科技AI实践:蜂巢机器人