第三方银联支付接口对接_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银联支付接口 demo,php版银联支付接口开发简单实例详解
这篇文章主要介绍了php版银联支付接口开发的方法,结合实例形式分析了php银联支付接口开发的具体流程与相关操作技巧,需要的朋友可以参考下 支付接口现在有第三方的支付接口也有银行的支付接口.这里就来介绍 ...
- 【2020】明哥版-JetBrains旗下常用开发工具教程目录更新中-建议收藏
前言 我为什么要写这个系列的教程?很早以前我们在写Java代码时用的较多开发工具可能就是MyEclipse或eclipse,当然了如果你在企业中还能遇见很古老的项目的话,你维护的时候还是需要使用MyE ...
- 支付宝wap端支付php对接_PHP接入支付宝手机网站支付、移动支付接口
前面已经说完了 PHP接入支付宝 即时到帐接口 回调接口也已经完成.这篇主要讲 手机网站支付 . 移动支付 接口的调用.调用方式与即时到帐 基本一样. 关于代码部分的详细解释,请 参看 PHP接入支付 ...
- 码支付如何对接网站_码支付,对接自己的网站教程,再也不怕某些支付平台跑路了...
点击上方"蓝字"关注我们了解更多精彩 一分钱可以买到什么?扫码看看 答应我要看完哦~ --------- ■ ■ ■ -------- 最近听到很多网站的兄弟说某某支付平台跑路了. ...
- PHP工程改成微擎的步骤_php微擎二次开发实战教程之今日头条小程序
第一课(微擎介绍安装).mp4 95.1M 第五课(微擎模块工作流程解析).mp4 126.3M 第四十一课(小程序发布到官方应用市场).mp4 26.6M 第四十课(文章收藏).mp4 74.1M ...
- STM32教程(CubeMx版):STM32CubeMx开发实例教程
基于STM32库函数开发教程(代码+教程文档) 需要的联系邮箱:Zhangyc_Engineer@qq.com(注:不免费)
- 天气预报文字版微信_微信开发天气预报教程
微信开发天气预报教程默认城市是郑州 需要注意的是: 1:weatherdata.txt是反序列化的城市天气网址,所以需要反序列化. 2: $contentStr = "$contentStr ...
- JavaWEB后端支付银联,支付宝,微信对接
注:本文来源于:< JavaWEB后端支付银联,支付宝,微信对接 > JavaWEB后端支付银联,支付宝,微信对接 标签(空格分隔): java 项目概述 最近项目需要后端打通支付,所 ...
- 支付宝接口 - 即时到账交易接口 对接 整理 1
支付宝官方开放平台接口说明: https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.Gp6DiG&treeId=62&a ...
最新文章
- OKHTTP3源码和设计模式(下篇)
- ASP.NET MVC实践系列9-filter原理与实践
- JSP中 JSTL和EL标签的使用
- mysql-数据库表优化
- ViewPager 详解(五)-----使用Fragment实现ViewPager滑动
- VTK:可视化算法之OfficeTube
- 重提URL Rewrite(3):在URL Rewrite后保持PostBack地址(转老赵blog)
- 第一章初始mybatis框架
- 使用DBCA创建数据库
- 每日一题(38)—— 一个32位的机器,该机器的指针是多少位?
- 【034】◀▶ 学习网站 问题解决
- 华为手机安卓系统可能停更,鸿蒙系统手机要来了
- thinkphp5 open_basedir 补充
- sdut 2493 Constructing Roads (图论)
- jsp----Session
- SPSS 数据的统计分析
- torch.erf()/gelu()/误差函数科普
- 电容式触摸感应按键解决方案AD
- 讯飞离线语音合成(语记)
- Day10 空时编码理论之无线信道、分集和复用