欢迎光临杨雨的个人博客站!

杨雨个人网站-杨雨个人博客-杨照佳

杨雨个人博客网站

关注互联网和搜索引擎的个人博客网站

首页 > cms使用教程 > ecshop使用教程 >

Ecshop实现的付出宝手机网页付出成果免费版示例

发布时间:2016-11-25  编辑:杨雨个人博客网站   点击:   

本文实例报告了Ecshop实现的付出宝手机网页付出成果。分享给各人供各人参考,详细如下:

Ecshop手机网页版本支持在网上找了许多必要费钱购置了,在这里小编清算了一个Ecshop 付出宝手机网页付出免费版供各人参考.

Ecshop 付出宝手机网页付出,针对ecshop wap手机版


代码如下:<?php
/**
* ECSHOP 付出宝手机网页插件
*/
if (!defined('IN_ECS'))
{
die('Hacking attempt');
}
$payment_lang = ROOT_PATH . 'languages/' .$GLOBALS['_CFG']['lang']. '/payment/alipay_wap.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'] = 'alipay_wap_desc';
/* 是否支持货到付款 */
$modules[$i]['is_cod'] = '0';
/* 是否支持在线付出 */
$modules[$i]['is_online'] = '1';
/* 作者 */
$modules[$i]['author'] = 'ECSHOP TEAM';
/* 网址 */
$modules[$i]['website'] = 'http://www.alipay.com';
/* 版本号 */
$modules[$i]['version'] = '1.0.2';
/* 设置信息 共用?? */
$modules[$i]['config'] = array(
array('name' => 'alipay_account', 'type' => 'text', 'value' => ''),
array('name' => 'alipay_key', 'type' => 'text', 'value' => ''),
array('name' => 'alipay_partner', 'type' => 'text', 'value' => ''),
array('name' => 'alipay_pay_method', 'type' => 'select', 'value' => '')
);
return;
}
/**
* 类
*/
class alipay_wap
{
/**
* 结构函数
*
* @access public
* @param
*
* @return void
*/
function alipay()
{
}
function __construct()
{
$this->alipay();
}
/**
* 天生付出代码
* @param array $order 订单信息
* @param array $payment 付出方法信息
*/
function get_code($order, $payment)
{
if (!defined('EC_CHARSET'))
{
$charset = 'utf-8';
}
else
{
$charset = EC_CHARSET;
}
//相助身份者id,以2088开头的16位纯数字
$alipay_config['partner'] = $payment['alipay_partner'];
//署名方法 不需修改
$alipay_config['sign_type'] = '0001';
//安详检讨码,以数字和字母构成的32位字符
//假如署名方法配置为“MD5”时,请配置该参数
//$alipay_config['key'] = $payment['alipay_key'];
//商户的私钥(后缀是.pen)文件相对路径
//假如署名方法配置为“0001”时,请配置该参数
$alipay_config['private_key_path'] = dirname(__FILE__)."/alipay_wap/key/rsa_private_key.pem";
//付出宝公钥(后缀是.pen)文件相对路径
//假如署名方法配置为“0001”时,请配置该参数
$alipay_config['ali_public_key_path']= dirname(__FILE__)."/alipay_wap/key/alipay_public_key.pem";
//↑↑↑↑↑↑↑↑↑↑请在这里设置您的根基信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
//字符编码名目 今朝支持 gbk 或 utf-8
$alipay_config['input_charset']= 'utf-8';
//ca证书路径地点,用于curl中ssl校验
//请担保cacert.pem文件在当前文件夹目次中
$alipay_config['cacert'] = dirname(__FILE__)."/alipay_wap/cacert.pem";
//会见模式,按照本身的处事器是否支持ssl会见,若支持请选择https;若不支持请选择http
$alipay_config['transport'] = 'http';
require_once(dirname(__FILE__)."/alipay_wap/lib/alipay_submit.class.php");
//返回名目
$format = "xml";
//必填,不必要修改
//返回名目
$v = "2.0";
//必填,不必要修改
//哀求号
$req_id = date('Ymdhis');
//必填,须担保每次哀求都是独一
//**req_data具体信息**
//处事器异步关照页面路径
$notify_url = return_url(basename(__FILE__, '.php'));
//需http://名目标完备路径,不应承加?id=123这类自界说参数
//页面跳转同步关照页面路径
$call_back_url = return_url(basename(__FILE__, '.php'));
//需http://名目标完备路径,不应承加?id=123这类自界说参数
//操纵间断返回地点
$merchant_url = $GLOBALS['ecs']->url();
//用户付款半途退出返回商户的地点。需http://名目标完备路径,不应承加?id=123这类自界说参数
//卖家付出宝帐户
$seller_email = $payment['alipay_account'];
//必填
//商户订单号
$out_trade_no = $order['order_sn'] . $order['log_id'];
//商户网站订单体系中独一订单号,必填
//订单名称
$subject = $order['order_sn'];
//必填
//付款金额
$total_fee = $order['order_amount'];
//必填
//哀求营业参数具体
$req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>';
//必填
/************************************************************/
//结构要哀求的参数数组,无需窜改
$para_token = array(
"service" => "alipay.wap.trade.create.direct",
"partner" => trim($alipay_config['partner']),
"sec_id" => trim($alipay_config['sign_type']),
"format" => $format,
"v" => $v,
"req_id" => $req_id,
"req_data" => $req_data,
"_input_charset" => trim(strtolower($alipay_config['input_charset']))
);
//成立哀求
$alipaySubmit = new AlipaySubmit($alipay_config);
$Html_text = $alipaySubmit->buildRequestHttp($para_token);
//URLDECODE返回的信息
$Html_text = urldecode($Html_text);
//理会长途模仿提交后返回的信息
$para_Html_text = $alipaySubmit->parseResponse($Html_text);
//获取request_token
$request_token = $para_Html_text['request_token'];
/**************************按照授权码token挪用买卖营业接口alipay.wap.auth.authAndExecute**************************/
//营业具体
$req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
//必填
//结构要哀求的参数数组,无需窜改
$parameter = array(
"service" => "alipay.wap.auth.authAndExecute",
"partner" => trim($alipay_config['partner']),
"sec_id" => trim($alipay_config['sign_type']),
"format" => $format,
"v" => $v,
"req_id" => $req_id,
"req_data" => $req_data,
"_input_charset" => trim(strtolower($alipay_config['input_charset']))
);
//成立哀求
$alipaySubmit = new AlipaySubmit($alipay_config);
$Html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '举办付款');
return $Html_text;
}
/**
* 相应操纵
*/
function respond()
{
if (!emptyempty($_POST))
{
foreach($_POST as $key => $data)
{
$_GET[$key] = $data;
}
}
log_write($_GET, 'alipay_wap');
$payment = get_payment($_GET['code']);
$seller_email = rawurldecode($_GET['seller_email']);
$order_sn = str_replace($_GET['subject'], '', $_GET['out_trade_no']);
$order_sn = trim($order_sn);
/* 搜查数字署名是否正确 */
ksort($_GET);
reset($_GET);
//相助身份者id,以2088开头的16位纯数字
$alipay_config['partner'] = $payment['alipay_partner'];
//署名方法 不需修改
$alipay_config['sign_type'] = '0001';
//安详检讨码,以数字和字母构成的32位字符
//假如署名方法配置为“MD5”时,请配置该参数
//$alipay_config['key'] = $payment['alipay_key'];
//商户的私钥(后缀是.pen)文件相对路径
//假如署名方法配置为“0001”时,请配置该参数
$alipay_config['private_key_path'] = dirname(__FILE__)."/alipay_wap/key/rsa_private_key.pem";
//付出宝公钥(后缀是.pen)文件相对路径
//假如署名方法配置为“0001”时,请配置该参数
$alipay_config['ali_public_key_path']= dirname(__FILE__)."/alipay_wap/key/alipay_public_key.pem";
//↑↑↑↑↑↑↑↑↑↑请在这里设置您的根基信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
//字符编码名目 今朝支持 gbk 或 utf-8
$alipay_config['input_charset']= 'utf-8';
//ca证书路径地点,用于curl中ssl校验
//请担保cacert.pem文件在当前文件夹目次中
$alipay_config['cacert'] = dirname(__FILE__)."/alipay_wap/cacert.pem";
//会见模式,按照本身的处事器是否支持ssl会见,若支持请选择https;若不支持请选择http
$alipay_config['transport'] = 'http';
require_once(dirname(__FILE__)."/alipay_wap/lib/alipay_notify.class.php");
//计较得出关照验证功效
$alipayNotify = new AlipayNotify($alipay_config);
$verify_result = $alipayNotify->verifyNotify();
if(!$verify_result) {//验证不乐成
return false;
}
$notify_data = $alipayNotify->decrypt($_GET['notify_data']);
$doc = new DOMDocument();
$doc->loadXML($notify_data);
if( ! emptyempty($doc->getElementsByTagName( "notify" )->item(0)->nodeValue) ) {
//商户订单号
$out_trade_no = $doc->getElementsByTagName( "out_trade_no" )->item(0)->nodeValue;
$out_trade_no = str_replace($_GET['subject'], '', $out_trade_no);
$out_trade_no = trim($out_trade_no);
//付出宝买卖营业号
$trade_no = $doc->getElementsByTagName( "trade_no" )->item(0)->nodeValue;
//买卖营业状态
$trade_status = $doc->getElementsByTagName( "trade_status" )->item(0)->nodeValue;
/* 搜查付出的金额是否符合 */
if (!check_money($out_trade_no, $_GET['total_fee']))
{
return false;
}
if($_GET['trade_status'] == 'TRADE_FINISHED') {
/* 改变订单状态 */
order_paid($out_trade_no);
return true;
}else if ($_GET['trade_status'] == 'TRADE_SUCCESS') {
/* 改变订单状态 */
order_paid($out_trade_no, 2);
return true;
}else{
return false;
}
}
}
}
?>

但愿本文所述对各人Ecshop开拓有所辅佐。

本文地址:http://itbyc.com/cms/ecshop/13309.html
转载请注明出处。
分享是一种快乐,也是一种美德:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
博客首页 | WEB开发 | 网站运营 | CMS使用教程 滇ICP备14002061号-1