本文实例讲述了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常见数据库操作技巧汇总》、《PHP数组(Array)操作技巧大全》、《php排序算法总结》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《php正则表达式用法总结》、《PHP运算与运算符用法总结》及《php字符串(string)用法总结》

希望本文所述对大家PHP程序设计有所帮助。

php银联支付接口 demo,php版银联支付接口开发简明教程相关推荐

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

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

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

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

  3. 【2020】明哥版-JetBrains旗下常用开发工具教程目录更新中-建议收藏

    前言 我为什么要写这个系列的教程?很早以前我们在写Java代码时用的较多开发工具可能就是MyEclipse或eclipse,当然了如果你在企业中还能遇见很古老的项目的话,你维护的时候还是需要使用MyE ...

  4. STM32教程(CubeMx版):STM32CubeMx开发实例教程

    基于STM32库函数开发教程(代码+教程文档) 需要的联系邮箱:Zhangyc_Engineer@qq.com(注:不免费)

  5. 天气预报文字版微信_微信开发天气预报教程

    微信开发天气预报教程默认城市是郑州 需要注意的是: 1:weatherdata.txt是反序列化的城市天气网址,所以需要反序列化. 2: $contentStr = "$contentStr ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. EJB-Java服务器端构件模型使用入门(2)
  2. 本周看代码找bug总结
  3. 研究生第一篇学术论文常犯问题总结
  4. udp 协议阻断_应对UDP反射放大攻击的五种常用防护思路
  5. amap vueamap 与_vue中使用vue-amap(高德地图)
  6. mysql建立外键案例_MySQL外键实例
  7. python语法简图
  8. SQL中的CASE WHEN THEN使用
  9. windows server 2008r2下搭建***服务器
  10. HP服务器远程管理工具iLO详细介绍
  11. java speex转码_JAVA版-微信语音.speex转.wav
  12. Elasticsearch:InteliJ Elasticsearch plugin 集成
  13. 计算机二级python看什么书好_2021年全国计算机二级Python备考指导
  14. 基于matlab的-数字调制技术仿真
  15. Java学习第一周总结
  16. 如何判断如何判断RS232线是直连还是交叉连线
  17. js实现酷炫倒计时动画效果
  18. 音频名词解释1(zhuanzai)
  19. 如何重置计算机服务到默认状态,电脑慢到让人抓狂?教你如何将Windows10还原到出厂设置...
  20. IT培训行业揭秘(五)

热门文章

  1. android信鸽推送通知栏,【信鸽推送】点击推送通知后,默认会从程序Launcher进入,返回时会回到主界面的问题...
  2. AB PLC仿真过程
  3. LinUX接收蓝牙音频,Win10 v2004已重新支持蓝牙A2DP音频串流接收功能
  4. Python量化资源大合集
  5. pdf编辑器哪个好 怎么添加pdf文件水印
  6. jquery 库下载地址http://www.jq22.com/jquery-info122
  7. android 限制后台进程,不超过4个进程 开发者选项,后台允许不超
  8. 华为荣耀4X的ROOT
  9. 【Get Up&Move】MMD镜头+动作打包下载.zip
  10. 视频时代的下一幕 ABC Inspire:读懂视频