您的位置:首页 > 运维架构

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

2015-11-12 14:33 911 查看
[ecshop 支付接口 开发调试] ecshop 需要做一些支付接口,和接口升级,经常需要支付返回

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');
*/
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: