<?php/*** ECSHOP 平安银行支付*/if (!defined('IN_ECS'))
{die('Hacking attempt');
}$payment_lang = ROOT_PATH . 'languages/' .$GLOBALS['_CFG']['lang']. '/payment/pinganpay.php';if (file_exists($payment_lang))
{global $_LANG;include_once($payment_lang);
}/* 模块的基本信息 */
if (isset($set_modules) && $set_modules == TRUE)
{$i = isset($modules) ? count($modules) : 0;/* 代码 */$modules[$i]['code']    = basename(__FILE__, '.php');/* 描述对应的语言项 */$modules[$i]['desc']    = 'pinganpay_desc';/* 是否支持货到付款 */$modules[$i]['is_cod']  = '0';/* 是否支持在线支付 */$modules[$i]['is_online']  = '1';/* 作者 */$modules[$i]['author']  = 'zhongyi';/* 网址 */$modules[$i]['website'] = 'http://www.pingan.com/';/* 版本号 */$modules[$i]['version'] = 'v1.0';/* 配置信息 */$modules[$i]['config']  = array(array('name' => 'masterId', 'type' => 'text', 'value' => '2000311146'),// array('name' => 'yp_key',     'type' => 'text', 'value' => ''),);return;
}/*** 类*/
class pinganpay
{//notify和returnurl的具体值自行填写private $notify_url = 'includes/modules/payment/pingan/notify.php';private $return_url = 'includes/modules/payment/pingan/return.php';private $gateway = '';//测试提交地址private $merchantCertFile =" ";private $tTrustPayCertFile =" ";function pinganpay(){$this->gateway='https://ebank.sdb.com.cn/khpayment/khPayment.do';//正式提交地址$this->tTrustPayCertFile = ROOT_PATH.'includes/modules/payment/pingan/paygate.cer';$this->gateway='https://testebank.sdb.com.cn/khpayment/khPayment.do';//测试提交地址$this->merchantCertFile =ROOT_PATH."includes/modules/payment/pingan/2000311146.pfx";$this->tTrustPayCertFile = ROOT_PATH.'includes/modules/payment/pingan/paygate1.cer';}function __construct(){$this->pinganpay();}/*** 生成支付代码* @param   array   $order  订单信息* @param   array   $payment    支付方式信息*/function get_code($order, $payment){$masterId = $payment['masterId'];if(!$masterId)$masterId = '2000311146';if($masterId!=='2000311146'){//测试环境$this->gateway='https://ebank.sdb.com.cn/khpayment/khPayment.do';//正式提交地址$this->merchantCertFile =ROOT_PATH."includes/modules/payment/pingan/".$masterId.".pfx";}if(!file_exists($this->merchantCertFile)){exit('商户生产证书不存在');}$data_order_id    = $order['order_sn'];$data_amount      = $order['order_amount'];$return_url  = return_url(basename(__FILE__, '.php'));$data = array('masterId' =>$masterId,'orderId' => $masterId .$data_order_id. rand(100, 999),'currency' => 'RMB','amount' => $data_amount,'objectName' => $data_order_id,//描述'paydate' => date('YmdHis', time()),'remark' => '','validtime' => '0',);$data = $this->_getData($data);//获取orig和signlist($orig, $sign) = $this->_getOrigAndSing($this->merchantCertFile, $data);$parameter = array('orig' => $orig,'sign' => $sign,//  'returnurl' => $GLOBALS['ecs']->url() .$this->return_url,'returnurl' => $return_url,'NOTIFYURL' => $GLOBALS['ecs']->url() .$this->notify_url,);$html = '<form method="post" name="P_FORM" action="' . $this->gateway . '">';foreach ($parameter as $key => $val) {$html .= "<input type='hidden' name='$key' value='$val' />";}$html.= "<input type='submit' value='" . $GLOBALS['_LANG']['pay_button'] . "'>";$html .= '</form>';return $html;}/*** 响应操作*/function respond(){$payment        = get_payment('pinganpay');$masterId    = $payment['masterId'];       // 获取商户编号$masterId = $payment['masterId'];if(!$masterId)$masterId = '2000311146';if($masterId!=='2000311146'){//测试环境$this->tTrustPayCertFile = ROOT_PATH.'includes/modules/payment/pingan/paygate.cer';}$orig = $_POST['orig'];$sign = $_POST['sign'];require_once 'pingan/pingan.php';$pingan = new pingan();//进行数据转码$orig = $pingan->_base64_url_decode($orig);$sign = $pingan->_base64_url_decode($sign);//验证签名是否正确/* */$result = $pingan->validate($orig, $sign, $this->tTrustPayCertFile);if ($result){// return true;} else {//return false;}$v_result = false;//将xml数据转换成array$orig_data = $pingan->xml_to_array($orig);if($orig_data['status']=='01'){$v_result = true;$order_id = get_order_id_by_sn(substr($orig_data['orderId'],-16,13));/* 改变订单状态 */order_paid($order_id,2);}else{//exit('error');}//print_r($orig_data);//exit;return $v_result;}/*** 获取签名过后的原始数据orig和签名数据sign* @param file $merchantCertFile* @param string $data* @return list*/private function _getOrigAndSing($merchantCertFile, $data){require_once 'pingan/pingan.php';$pingan = new pingan();$orig = $pingan->getOrig($data);$sign = $pingan->getSign($merchantCertFile, $data);return array($orig, $sign);}/*** 将数据组装为xml格式的数据* @param array $data* @return string** $data = '<kColl id="input" append="false"><field id="masterId" value="2000311146"/><field id="orderId" value="20003111462015060473550416"/><field id="currency" value="RMB"/><field id="amount" value="0.01"/><field id="objectName" value="��"/><field id="paydate" value="20150604143506"/><field id="remark" value="��"/><field id="validtime" value="0"/></kColl>';*/private function _getData($data){$xml_data = '<kColl id="input" append="false">';foreach ($data as $key => $value) {$xml_data .= '<field id="' . $key . '" value="' . $value . '"/>';}$xml_data .= '</kColl>';return $xml_data;}}?>

平安银行支付接口 PHP ECSHOP相关推荐

  1. 中国银行支付接口(ecshop版)

    中国银行的支付接口只提供有java版,众所周之ecshop是采用php开发的,这让我们如何用php开发java的东东呢?办法始终是有的,我们可以先在ecshop里用php生成订单,提交给nginx,n ...

  2. 建行支付接口 php,ecshop下用php语言和jar包实现建设银行在线支付接口

    最近应一个客户的要求在ecshop下开发建行网银的在线支付接口. 原来以为很简单,后来发现不是这么回事. 先看看建行的开发接口和实例代码.因为ecshop是Php的,所以在php的实例代码中有这么一段 ...

  3. java chinapay_通过PHP/Java Bridge来实现ecshop的chinapay支付接口

    背景: 最近弄ecshop网上商城这个系统,需要提供对中国银联支付支持,从网上查了一些资料,发现chinapay对php支持并不是十分友好.需要扩展编译啥的,似乎很麻烦.网上资料不是很多,php实现c ...

  4. web农行支付php示例,ecshop,shopex完美实现农业银行(农行)在线支付接口

    最近为客户开发了一个ecshop的农业银行在线支付的插件.分享一下我的经验. 农行开发了这个在线支付接口,但是主要是java版本的.那么我们的ecshop怎么跟他的接口通信呢? 农行给了一个解决方案, ...

  5. 银联在线php支付接口,ecshop银联在线支付接口插件(官方版)

    分享一个银联在线支付(UPOP)ecshop支付接口的插件,亲自用过.你只需放到ec对应的目录,然后进到后台"支付方式"页面安装就能调用了.希望能对你有用!! 此插件在ecshop ...

  6. 杉德支付php代码实现_杉德ecshop,thinkphp,shopnc在线支付接口,支付插件(payment plugin含源码)...

    最近应一个客户的要求,给他的一个ecshop网站开发杉德在线支付接口和代付接口. 杉德有自己的收银台,集成了各类银行,也是不错. 杉德支持H5,APP,网银快捷等支付接口.文档还算比较齐全. 比较有特 ...

  7. chinapay支付接口php,GitHub - tension/chinapay-for-ecshop: 上海银联(chinapay)支付插件 for ECSHOP...

    chinapay-for-ecshop =================== 上海银联(chinapay)支付插件 for ECSHOP 银联支付有两个接口 upop 与 chinapay,很多 E ...

  8. [ecshop 支付接口 开发调试] ecshop 需要做一些支付接口,和接口升级,经常需要支付返回

    [ecshop 支付接口 开发调试] ecshop 需要做一些支付接口,和接口升级,经常需要支付返回 1.经验1 直接建立一个支付页面 /** * ecshop 支付接口开发 测试 * ======= ...

  9. 农业银行网站接口php,ecshop,shopex完美实现农业银行(农行)在线支付接口(php语言版本)...

    最近为客户开发了一个ecshop的农业银行在线支付的插件.分享一下我的经验. 农行开发了这个在线支付接口,但是主要是java版本的.那么我们的ecshop怎么跟他的接口通信呢? 农行给了一个解决方案, ...

  10. php-java-bridge 作用_PHP-Java-Bridge的使用(平安银行支付功能专版)

    去年做平安银行的时候,用到了PHP-Java-Bridge,后来写了一篇博客记录使用PHP-Java-Bridge的一些心得(连接:http://my.oschina.net/kenblog/blog ...

最新文章

  1. 使用AD8302进行检波
  2. 给Visual Studio Code的文件夹和文件替换图标
  3. java核心api_Java核心API需要掌握的程度..你做到了多少??
  4. 如何去提高代码代码质量
  5. 执行update操作的话,就会报“Connection is read-only. Queries leading to data modification are not allowed”的异常。
  6. 康托展开逆展开算法笔记
  7. 机器学习(八)——SVD推荐系统
  8. 【语音处理】基于matlab语音去噪频谱分析【含Matlab源码 1019期】
  9. 项目实战:Qt+OpenCV激光射击游戏(识别激光、识别圆)
  10. 质数c语言2357,用“2357”判断“100以内的质数合数”.doc
  11. 怎么看待小公司的规章制度?
  12. 小程序wx.request通过post方式提交数据给服务器-小程序支付开发教程
  13. 读易[14]·远古卜卦算法分析与实现
  14. 【航天信息开票软件V3.0金税盘版安装恢复过程】有坑有心得
  15. 前端小练习:纯css菜单栏
  16. Matrixdb添加mirror
  17. AI热潮来袭||网友:AI会不会抢自己的饭碗啊~~~
  18. 文盲确定为不能用计算机,最初人们把文盲定义为 “不识字的人”;后来又把文盲确定为“看不懂现代信息符号、图表的人”;而现在联合国把文盲确定为“不能用计算机交流的人”。从哲学上看,这表明...
  19. App自动更新之通知栏下载
  20. 大数据如何解决行业挑战?大数据在10个垂直行业中的应用

热门文章

  1. 真无线蓝牙耳机哪个好?四款买了不亏的真无线蓝牙耳机
  2. 用u盘刻录装服务器系统盘,光盘系统刻录到U盘上教程
  3. 与Snapchat死磕, Facebook推出AR滤镜应用
  4. linux关闭rpcbind服务,rpcbind服务 关闭
  5. 精品微信小程序后勤服务管理系统+后台管理系统|前后分离VUE
  6. Shiro设定密码匹配规则(自定义密码验证匹配器)
  7. 使用站长工具进行目标域名登记查询
  8. 蚂蚁金服 CEO 突然辞职!去向很意外。。。
  9. 安卓网络测试工具_【网速】最佳手机网速测试工具
  10. 批量下载css文件中的图片