本文实例讲述了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版银联支付接口开发简明教程相关推荐

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

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

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

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

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

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

  4. 支付宝wap端支付php对接_PHP接入支付宝手机网站支付、移动支付接口

    前面已经说完了 PHP接入支付宝 即时到帐接口 回调接口也已经完成.这篇主要讲 手机网站支付 . 移动支付 接口的调用.调用方式与即时到帐 基本一样. 关于代码部分的详细解释,请 参看 PHP接入支付 ...

  5. 码支付如何对接网站_码支付,对接自己的网站教程,再也不怕某些支付平台跑路了...

    点击上方"蓝字"关注我们了解更多精彩 一分钱可以买到什么?扫码看看 答应我要看完哦~ --------- ■ ■ ■ -------- 最近听到很多网站的兄弟说某某支付平台跑路了. ...

  6. PHP工程改成微擎的步骤_php微擎二次开发实战教程之今日头条小程序

    第一课(微擎介绍安装).mp4 95.1M 第五课(微擎模块工作流程解析).mp4 126.3M 第四十一课(小程序发布到官方应用市场).mp4 26.6M 第四十课(文章收藏).mp4 74.1M ...

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

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

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

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

  9. JavaWEB后端支付银联,支付宝,微信对接

    注:本文来源于:<  JavaWEB后端支付银联,支付宝,微信对接  > JavaWEB后端支付银联,支付宝,微信对接 标签(空格分隔): java 项目概述 最近项目需要后端打通支付,所 ...

  10. 支付宝接口 - 即时到账交易接口 对接 整理 1

    支付宝官方开放平台接口说明: https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.Gp6DiG&treeId=62&a ...

最新文章

  1. OKHTTP3源码和设计模式(下篇)
  2. ASP.NET MVC实践系列9-filter原理与实践
  3. JSP中 JSTL和EL标签的使用
  4. mysql-数据库表优化
  5. ViewPager 详解(五)-----使用Fragment实现ViewPager滑动
  6. VTK:可视化算法之OfficeTube
  7. 重提URL Rewrite(3):在URL Rewrite后保持PostBack地址(转老赵blog)
  8. 第一章初始mybatis框架
  9. 使用DBCA创建数据库
  10. 每日一题(38)—— 一个32位的机器,该机器的指针是多少位?
  11. 【034】◀▶ 学习网站 问题解决
  12. 华为手机安卓系统可能停更,鸿蒙系统手机要来了
  13. thinkphp5 open_basedir 补充
  14. sdut 2493 Constructing Roads (图论)
  15. jsp----Session
  16. SPSS 数据的统计分析
  17. torch.erf()/gelu()/误差函数科普
  18. 电容式触摸感应按键解决方案AD
  19. 讯飞离线语音合成(语记)
  20. Day10 空时编码理论之无线信道、分集和复用

热门文章

  1. python 读取pdf图片_三种方法,Python轻松提取PDF中全部图片
  2. 如何完美的卸载Office2007?
  3. 物理专业英语词汇(H-N)
  4. 因果推断理论框架 Potenial Outcomes Framework
  5. 不透明度十六进制_十六进制不透明度表
  6. php与jpython-在python中复数怎么表示
  7. 带给人类最大力量的,不是仇恨,而是人性--《看见》读后感
  8. Go语言 windows环境安装
  9. servlet003:监听器
  10. C++练习题:分数化简