html手机支付案例,实例讲述Ecshop实现的支付宝手机网页支付功能
本文实例讲述Ecshop实现的支付宝手机网页支付功能,分享给大家供大家参考,具体如下:
Ecshop手机网页版本支持在网上找了很多需要花钱购买了,在这里小编整理了一个Ecshop 支付宝手机网页支付免费版供大家参考.
Ecshop 支付宝手机网页支付,针对ecshop wap手机版
?
复制代码
代码如下:
/**
* 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 = '' . $notify_url . '' . $call_back_url . '' . $seller_email . '' . $out_trade_no . '' . $subject . '' . $total_fee . '' . $merchant_url . '';
//必填
/************************************************************/
//构造要请求的参数数组,无需改动
$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 = '' . $request_token . '';
//必填
//构造要请求的参数数组,无需改动
$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实现的支付宝手机网页支付功能的全部内容,希望本文所述对大家Ecshop开发有所帮助,更多内容请继续关注西部数码技术频道网站!
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
html手机支付案例,实例讲述Ecshop实现的支付宝手机网页支付功能相关推荐
- php手机网站支付宝_php支付宝手机网页支付类实例
本文实例讲述了php支付宝手机网页支付类.分享给大家供大家参考.具体分析如下: 此处注意: ① 该类是用在Yii框架里面的,没有去掉一些框架的东西. ② 本类不能不做任何修改而使用. 1. PHP代码 ...
- c语言顺序表的例子,本文实例讲述了C语言实现的顺序表功能。分享给大家供大家参考,具体如下:seqlist.h#ifndef __SEQLIST_H__#define __...
本文实例讲述了C语言实现的顺序表功能.分享给大家供大家参考,具体如下: seqlist.h #ifndef __SEQLIST_H__ #define __SEQLIST_H__ #include # ...
- ecshop 手机版的php代码在哪里,PHP 在ecshop上集成 手机网页支付_php
参考alipay网页支付接口的代码 其实原理跟ecshop上集成的alipay支付差不多 就是因为利用curl请求的时候相应时间过长 所以不能直接去先post数据再生成button /** * 生成 ...
- 手机支付属于什么计算机应用领域,基于j2me的手机移动支付应用研究-计算机应用技术专业论文.docx...
基于j2me的手机移动支付应用研究-计算机应用技术专业论文 £查三些奎耋三兰堡圭耋堡堡圣Abst £查三些奎耋三兰堡圭耋堡堡圣 Abst ract Mobile payment,which was i ...
- python程序实例电话本-Python基于递归实现电话号码映射功能示例
本文实例讲述了Python基于递归实现电话号码映射功能.分享给大家供大家参考,具体如下: 问题 电话按键上面的每个数字都对应着几个字母,如果按下一个数字键代表输入一个字母,那么输入一个数字组成的字符串 ...
- [转帖]web安全:通俗易懂,以实例讲述破解网站的原理及如何进行防护!如何让网站变得更安全。...
web安全:通俗易懂,以实例讲述破解网站的原理及如何进行防护!如何让网站变得更安全. https://www.cnblogs.com/1996V/p/7458377.html 感谢原作者写的内容 安全 ...
- php两个字符串公共,C++_C语言求两个字符串的最长公共子串,本文实例讲述了C语言求两个字 - phpStudy...
C语言求两个字符串的最长公共子串 本文实例讲述了C语言求两个字符串的最长公共子串的方法.分享给大家供大家参考.具体实现方法如下: #include "stdio.h" #inclu ...
- php随机生成数字字母,PHP_php随机生成数字字母组合的方法,本文实例讲述了php随机生成数 - phpStudy...
php随机生成数字字母组合的方法 本文实例讲述了php随机生成数字字母组合的方法.分享给大家供大家参考.具体如下: 直接上代码: function getRandomString($len, $cha ...
- java正则截取xml节点_实例讲述Java使用正则表达式截取重复出现的XML字符串功能...
Java使用正则表达式截取重复出现的XML字符串功能示例 本文实例讲述了Java使用正则表达式截取重复出现的XML字符串功能.分享给大家供大家参考,具体如下: public static void m ...
- mysql注入实例获取答案_本文实例讲述了MySQL解决SQL注入的另类方法。分享给大家供大家参考,具体如下:问题解读我觉得,这个问题每年带来的成本可以高达数十亿美元了。本文就来谈谈,...
本文实例讲述了MySQL解决SQL注入的另类方法.分享给大家供大家参考,具体如下: 问题解读 我觉得,这个问题每年带来的成本可以高达数十亿美元了.本文就来谈谈,假定我们有如下 SQL 模板语句: se ...
最新文章
- 《预训练周刊》第28期:M6-10T:高效多万亿参数预训练的共享去链接范式、大模型自然语言处理的最新进展综述...
- ZenHub已集成于GitHub企业版
- “团队禁止使用Lombok”,被我狠狠的反驳了!
- vc数据类型转换大全
- 正则表达式替换一位数字,并保证其后面不含有其他数字(我用来替换第一页页码)...
- Nginx的启动、停止和重启
- i2c--ioctl--主机控制器驱动(i2c_adapter)--外设驱动(i2c_driver)
- 打开程序时固定位置_FANUC机器人:参考位置功能介绍与设定方法
- mysql geometry 附近的人_mysql中geometry类型的简单使用(搜索附近的人)
- 图像灰度化方法总结及其VC实现
- Java List remove()方法– ArrayList remove()
- android 生成长截图,【UNIAPP截长图】方案之一:滚动截屏 Android
- Android 分区布局详解
- onenote 导出为 html,Exporting or convert OneNote 2010 to HTML, not MHTML
- 创新思维案列分析——苹果公司
- Excel常用技巧(一)——快捷键
- 【论文笔记】Camera Style Adaption for Person Re-identification
- Unity SteamVR获取手柄按钮触发事件
- Qt制作简单标签云(上)
- sql将数据按照年月日分组并统计数量
热门文章
- html_css_尺寸调整/调整图片样式(img/max-widht/object-fit)
- yarn中资源调度fair schedule详解
- 机器视觉技术的尺寸测量
- linux监控工具gotop
- 2021年N1叉车司机模拟考试题库软件及全国真题汇总
- 窃钩者诛,“窃脸”者___?
- matlab零阶保持器的作用,MATLAB保持器的simulink仿真.ppt
- 写给学生看的系统分析与验证笔记(十二)——验证ω-正则属性(Verifying ω-regular properties)
- JAVA圆和正方形组合图形_关于java:图形数据流组合框架
- 计算机瞬间黑屏又自动恢复,电脑显示器突然黑屏然后过几秒又自动恢复过来为什么?-显示器黑屏几秒又好...