文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Ecshop实现的支付宝手机网页支付功能免费版示例

2022-06-12 02:17

关注

本文实例讲述了Ecshop实现的支付宝手机网页支付功能。分享给大家供大家参考,具体如下:

Ecshop手机网页版本支持在网上找了很多需要花钱购买了,在这里小编整理了一个Ecshop 支付宝手机网页支付免费版供大家参考.

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


复制代码代码如下:<?php

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

{

function alipay()

{

}

function __construct()

{

$this->alipay();

}

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');

//必填,须保证每次请求都是唯一

/

//构造要请求的参数数组,无需改动

$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'];

//业务详细

$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开发有所帮助。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-开源
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯