[ecshop 支付接口 开发调试] ecshop 需要做一些支付接口,和接口升级,经常需要支付返回
2015-11-12 14:33
911 查看
[ecshop 支付接口 开发调试] ecshop 需要做一些支付接口,和接口升级,经常需要支付返回
1.经验1
直接建立一个支付页面
2 经验2
生成 购物车函数,然后直接出现 支付按钮
3 经验3 。
增加log函数
4 经验4
$_POST 有时候 函数中读取不到
用 $_POST = $GLOBALS['_POST'];
$GLOBALS["HTTP_RAW_POST_DATA"] 有时候 函数中读取不到
用 file_get_contents("php://input")
5
responsd notfiy 分开
notify 直接用单独的网址
====================================
1.经验1
直接建立一个支付页面
/** * ecshop 支付接口开发 测试 * ============================================================================ * $Author: yanggg QQ 346767073 $ */ /** * ecshop 支付接口开发 测试 * ============================================================================ * $Author: yanggg QQ 346767073 $ */ define('IN_ECS', true); require(dirname(__FILE__) . '/includes/init.php'); require(ROOT_PATH . 'includes/lib_payment.php'); require(ROOT_PATH . 'includes/lib_order.php'); require(ROOT_PATH . 'includes/modules/payment/alipay.php'); error_reporting(E_ALL); $key = ''; $payment = $db->getOne("SELECT pay_config FROM " . $ecs->table('payment') . " WHERE pay_code = 'alipay' AND enabled = 1"); if (!empty($payment)) { $payment = unserialize_config($payment); foreach($payment as $k=>$v) { if ($v['name'] == 'merchant_key') { $key = $v['value']; } } } else { die('do not install this payment plus'); } echo '-------payment config --------<br>'; print_r($payment); echo '<br>-------payment start --------<br>'; //编制 一个订单 $order = array(); $order['order_sn'] = date('Ymdhms'); $order['order_amount'] = 1; $tl = new alipay(); echo $tl->get_code($order,$payment); echo 'fff';
2 经验2
生成 购物车函数,然后直接出现 支付按钮
3 经验3 。
增加log函数
4 经验4
$_POST 有时候 函数中读取不到
用 $_POST = $GLOBALS['_POST'];
$GLOBALS["HTTP_RAW_POST_DATA"] 有时候 函数中读取不到
用 file_get_contents("php://input")
5
responsd notfiy 分开
notify 直接用单独的网址
//服务器通知页面 $receiveUrl = $GLOBALS['ecs']->url() . 'respond_tonglian.php'; //return_url(basename(__FILE__, '.php')); //付款客户的取货url地址 就是付款成功跳转的页面 $pickupUrl = return_url(basename(__FILE__, '.php'));
/** * 响应操作 */ function respond() { if($_GET['status'] == 1){ return true; } else{ return false; } } /** * 响应操作 */ public function notify() {
====================================
<?php /** * ECSHOP 通联支付响应页面 */ define('IN_ECS', true); require(dirname(__FILE__) . '/includes/init.php'); require(ROOT_PATH . 'includes/lib_payment.php'); require(ROOT_PATH . 'includes/lib_order.php'); //log2(ROOT_PATH.'/data/tonglian_log.txt',"传递过来的POST\r\n".var_export($_POST,true)); //log2(ROOT_PATH.'/data/tonglian_log.txt',"传递过来的XML HTTP_RAW_POST_DATA\r\n".var_export($GLOBALS["HTTP_RAW_POST_DATA"],true)); //log2(ROOT_PATH.'/data/tonglian_log.txt',"传递过来的XML php://input\r\n".var_export( file_get_contents("php://input") ,true)); //log2(ROOT_PATH.'/data/tonglian_log.txt',"传递过来的XML request \r\n".var_export( $_REQUEST ,true)); function log2($file,$txt) { $fp = fopen($file,'ab+'); fwrite($fp,'-----------'.local_date('Y-m-d H:i:s').'-----------------'); fwrite($fp,$txt); fwrite($fp,"\r\n\r\n\r\n"); fclose($fp); } /* 支付方式代码 */ $pay_code = 'xingwang'; /* 参数是否为空 */ if (empty($pay_code)) { $msg = $_LANG['pay_success']; } else { /* 检查code里面有没有问号 */ if (strpos($pay_code, '?') !== false) { $arr1 = explode('?', $pay_code); $arr2 = explode('=', $arr1[1]); $_REQUEST['code'] = $arr1[0]; $_REQUEST[$arr2[0]] = $arr2[1]; $_GET['code'] = $arr1[0]; $_GET[$arr2[0]] = $arr2[1]; $pay_code = $arr1[0]; } /* 判断是否启用 */ $sql = "SELECT COUNT(*) FROM " . $ecs->table('payment') . " WHERE pay_code = '$pay_code' AND enabled = 1"; if ($db->getOne($sql) == 0) { $msg = $_LANG['pay_disabled']; } else { $plugin_file = 'includes/modules/payment/' . $pay_code . '.php'; //log2(ROOT_PATH.'/data/tonglian_log.txt',"载入 接口\r\n". 'include/modules/payment/' . $pay_code . '.php'); /* 检查插件文件是否存在,如果存在则验证支付是否成功,否则则返回失败信息 */ if (file_exists($plugin_file)) { /* 根据支付方式代码创建支付类的对象并调用其响应操作方法 */ include_once($plugin_file); $payment = new $pay_code(); // modified by yanggg 2015 10 14 //log2(ROOT_PATH.'/data/tonglian_log.txt','调用函数 notify'); $kk=@$payment->notify(); #include('wxch_respond.php'); $msg = $kk ? $_LANG['pay_success'] : $_LANG['pay_fail']; } else { //log2(ROOT_PATH.'/data/tonglian_log.txt','文件不存在啊'); $msg = $_LANG['pay_not_exist']; } //log2(ROOT_PATH.'/data/tonglian_log.txt', $msg ); } } /* assign_template(); $position = assign_ur_here(); $smarty->assign('page_title', $position['title']); // 页面标题 $smarty->assign('ur_here', $position['ur_here']); // 当前位置 $smarty->assign('page_title', $position['title']); // 页面标题 $smarty->assign('ur_here', $position['ur_here']); // 当前位置 $smarty->assign('helps', get_shop_help()); // 网店帮助 $smarty->assign('message', $msg); $smarty->assign('shop_url', $ecs->url()); $smarty->display('respond.dwt'); */ ?>
相关文章推荐
- 钻一钻Tomcat 之 Tomcat配置环境变量(Ⅳ)
- 配置java环境变量(linux mac windows7)
- ubuntu apache2 php 中文乱码
- openwrt交叉编译环境搭建
- Linux(CentOS7) NVIDIA GeForece GTX 745 显卡驱动
- Linux定时任务系统 Cron
- Linux下编译、链接和装载
- NET MVC中 DropDownList的BUG
- cpu有哪些架构
- Linux 下的定时任务实现 at 和 crontab
- CentOS 配置Tomcat及搭配Nginx
- popen,argc,argv, cprintf, snprintf,strcmp,write,read,strspn,strcspn,
- 常用web技术学习的视频网站
- squid代理
- 安装Tomcat
- Linux 系统挂载数据盘
- Lucene工具箱之OpenBitSet
- [Shell] 读取脚本路径
- Ubuntu下编译Openpilot
- 基于opencv的摄像头提取