平安银行支付接口 PHP ECSHOP
来源:互联网 发布:蜂窝数据应用找不到 编辑:程序博客网 时间:2024/05/07 01:51
<?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;}} ?>
0 0
- 平安银行支付接口 PHP ECSHOP
- ecshop php 建设银行 支付接口
- ecshop php 中国银行 支付 接口
- 支付宝 ECSHOP 支付接口 PHP
- php ECshop支付宝接口总结
- 工商银行支付接口 B2C PHP ecshop
- ECSHOP 农行 支付 PHP B2C 接口 API
- ECShop支付宝接口总结
- ecshop支付宝接口传递
- 支付调银行付款接口
- 招商银行 支付 ECSHOP php shopex
- PHP第三方支付接口,银行接口(附下载),third party bank interface
- 平安银行笔面试
- ecshop 支付宝自动发货接口
- 中国银行支付接口(ecshop版)
- 中国银行支付接口(ecshop版)
- ecshop 微信开发 支付宝接口
- 中国银行支付接口(ecshop版)
- JavaScriptBOM和JavaScriptDOM
- 博客地址
- 使用SQL Server DMVs优化索引策略
- HWI安装及问题
- Spring基础:快速入门spring boot(5):Spring中的Cron--Scheduling
- 平安银行支付接口 PHP ECSHOP
- Android最全开发资源
- dcos 1.7 发现的两个bug
- 在IT行业中,如何拿到15K的月薪?
- 给自己定个目标,向阿里p7前进
- Java实现向数据库中存放和读取图片
- NOIP 提高组 初赛 四、阅读程序写结果 习题集(二)NOIP2000-NOIP2001
- HUE安装及问题
- Unity学习之RollAballGame改动版本