<?php if ($modules) { ?>,ecshop国泰世华银行银联卡支付插件

本文档提供了一个ECSHOP支付插件的源代码,用于国泰世华银行银联信用卡支付。代码中包含了支付流程的关键步骤,如订单信息处理、支付验证和回调响应。通过对代码的分析,读者可以了解在线支付接口的实现细节和安全性措施。
摘要由CSDN通过智能技术生成

/**

* ECSHOP 国泰世华银行银联信用卡 支付插件

* ----------------------------------------------------------------------------

* http://www.phpally.com

* 码农笔记 程序员搬砖之路

* ----------------------------------------------------------------------------

* 作者: Jack

* 邮箱: 349392900@qq.com

* 时间: 2014-08-04

*/

if(!defined('IN_ECS'))

{

die('Hacking attempt');

}

$payment_lang = ROOT_PATH . 'languages/' .$GLOBALS['_CFG']['lang']. '/payment/cub.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'] = 'cub_credit_desc'; //描述对应的语言项

$modules[$i]['is_cod'] = '0'; //是否支持货到付款

$modules[$i]['is_online'] = '1'; //是否支持在线支付

$modules[$i]['pay_fee'] = '0'; //支付费用

$modules[$i]['author'] = 'Jack'; //作者

$modules[$i]['website'] = 'http://www.phpally.com'; //网址

$modules[$i]['version'] = '1.0.0'; //版本号

/* 配置信息 */

$modules[$i]['config'] = array(

array('name' => 'store_id', 'type' => 'text', 'value' => ''),

array('name' => 'cub_key', 'type' => 'text', 'value' => ''),

);

return;

}

/**

* 类

*/

class cub_credit

{

/**

* 构造函数

*

* @access public

* @param

*

* @return void

*/

function cub_credit()

{

}

function __construct()

{

$this->cub_credit();

}

/**

* 生成支付代码

* @param array $order 订单信息

* @param array $payment 支付方式信息

*/

function get_code($order, $payment)

{

$store_id = trim($payment['store_id']); //商户号

$cub_key = trim($payment['cub_key']); //密钥

$order_number = $order['order_sn']; //订单号

$amount = floor($order['order_amount']); //订单金额

$cavalue = md5($store_id . $order_number . $amount . $cub_key); //校验值

$return_url = return_url(basename(__FILE__, '.php')); //回调地址

$request_xml = '<?xml version="1.0" encoding="UTF-8"?>

' . $cavalue . '

' . $return_url . '

' . $store_id . '

' . $order_number . '

' . $amount . '

';

//构建支付表单

$def_url = '

';

$def_url .= "";

$def_url .= "";

$def_url .= "

";

return $def_url;

}

/**

* 响应操作

*/

function respond()

{

$respond_xml = trim($_REQUEST['strOrderInfo']);

if(stristr($respond_xml, 'HTTP 404') || $respond_xml == '')

{

return 'unknown error';

}

else

{

$respond_obj = simplexml_load_string($respond_xml); //返回的XML数据

}

$cavalue = $respond_obj -> CAVALUE; //校验值

$store_id = $respond_obj -> ORDERINFO -> STOREID; //商户号

$order_number = $respond_obj -> ORDERINFO -> ORDERNUMBER; //订单号

$amount = $respond_obj -> ORDERINFO -> AMOUNT; //金额

$auth_status = $respond_obj -> AUTHINFO -> AUTHSTATUS; //授权状态

$auth_code = $respond_obj -> AUTHINFO -> AUTHCODE; //授权码

$cub_key = trim($payment['cub_key']); //密钥

$md5_cavalue = md5($store_id . $order_number . $amount . $auth_status . $auth_code . $cub_key); //重新计算校验值

/* 检查密钥是否正确 */

if($md5_cavalue == $cavalue)

{

$order_id = get_order_id_by_sn($order_number); //验证通过后,将订单sn转换为id,来操作订单表。

if($auth_status == '0000') //成功-0000,其余代码皆属失败。

{

order_paid($order_id); //改变订单状态

return true;

}

}

else

{

return false;

}

}

}

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值