zen cart实现订单中增加paypal中预留电话的方法


Posted in PHP onJuly 12, 2016

本文实例讲述了zen cart实现订单中增加paypal中预留电话的方法。分享给大家供大家参考,具体如下:

在PayPal的IPN返回值中联系电话是 contact_phone, 前提是你帐户设定了买家在付款时预留电话,如果没有要求的话,该值默认是不会返回的。

但在zen cart的PAYPAL的支付插件里是不获取这个信息的,需要手动修改PAYPAL的程序。下面我们就修改:

一、在 paypal 表中增加 contact_phone 字段

ALTER TABLE `paypal` ADD `contact_phone` VARCHAR( 50 ) NULL COMMENT '电话'

二、修改 paypal_functions.php 文件里的 ipn_create_order_array 函数

此文件在./includes/modules/payment/paypal目录下

//增加
'contact_phone' => $_POST['contact_phone'],

修改后如下

/**
 * Create order record from IPN data
 */
 function ipn_create_order_array($new_order_id, $txn_type) {
  $sql_data_array = array('order_id' => $new_order_id,
     'txn_type' => $txn_type,
     'module_name' => 'paypal (ipn-handler)',
     'module_mode' => 'IPN',
     'reason_code' => $_POST['reason_code'],
     'payment_type' => $_POST['payment_type'],
     'payment_status' => $_POST['payment_status'],
     'pending_reason' => $_POST['pending_reason'],
     'invoice' => $_POST['invoice'],
     'mc_currency' => $_POST['mc_currency'],
     'first_name' => $_POST['first_name'],
     'last_name' => $_POST['last_name'],
     'payer_business_name' => $_POST['payer_business_name'],
     'contact_phone' => $_POST['contact_phone'],
     'address_name' => $_POST['address_name'],
     'address_street' => $_POST['address_street'],
     'address_city' => $_POST['address_city'],
     'address_state' => $_POST['address_state'],
     'address_zip' => $_POST['address_zip'],
     'address_country' => $_POST['address_country'],
     'address_status' => $_POST['address_status'],
     'payer_email' => $_POST['payer_email'],
     'payer_id' => $_POST['payer_id'],
     'payer_status' => $_POST['payer_status'],
     'payment_date' => datetime_to_sql_format($_POST['payment_date']),
     'business' => $_POST['business'],
     'receiver_email' => $_POST['receiver_email'],
     'receiver_id' => $_POST['receiver_id'],
     'txn_id' => $_POST['txn_id'],
     'parent_txn_id' => $_POST['parent_txn_id'],
     'num_cart_items' => $_POST['num_cart_items'],
     'mc_gross' => $_POST['mc_gross'],
     'mc_fee' => $_POST['mc_fee'],
     'settle_amount' => $_POST['settle_amount'],
     'settle_currency' => $_POST['settle_currency'],
     'exchange_rate' => $_POST['exchange_rate'],
     'notify_version' => $_POST['notify_version'],
     'verify_sign' => $_POST['verify_sign'],
     'date_added' => 'now()',
     'memo' => $_POST['memo']
     );
  return $sql_data_array;
}

三、为了在后台管理的订单内容里能看到contact_phone需要修改 paypal_admin_notification.php 文件

此文件在./includes/modules/payment/paypal目录下

增加下面内容:

$output .= '<tr><td class="main">Contact Phone:</td>';
$output .= '<td class="main">'.$ipn->fields['contact_phone'].'</td></tr>';

希望本文所述对大家基于zend框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php实现jQuery扩展函数
Oct 30 PHP
php高级编程-函数-郑阿奇
Jul 04 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
Nov 02 PHP
学习php开源项目的源码指南
Dec 21 PHP
PHP 二维数组和三维数组的过滤
Mar 16 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
Apr 14 PHP
Smarty模板引擎缓存机制详解
May 23 PHP
分享PHP-pcntl 实现多进程代码
Sep 30 PHP
PHPStrom 新建FTP项目以及在线操作教程
Oct 16 PHP
thinkPHP5.0框架独立配置与动态配置方法
Mar 17 PHP
php中类和对象:静态属性、静态方法
Apr 09 PHP
PHP实现普通hash分布式算法简单示例
Aug 06 PHP
Yii CGridView用法实例详解
Jul 12 #PHP
Yii视图CGridView列表用法实例分析
Jul 12 #PHP
微信支付开发动态链接Native支付
Jul 12 #PHP
Yii中CGridView禁止列排序的设置方法
Jul 12 #PHP
thinkPHP模板算术运算相关函数用法分析
Jul 12 #PHP
thinkPHP基于ajax实现的菜单与分页示例
Jul 12 #PHP
微信支付开发维权通知实例
Jul 12 #PHP
You might like
PHP内核探索:哈希表碰撞攻击原理
2015/07/31 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
javascript为下拉列表动态添加数据项
2014/05/23 Javascript
JavaScript中判断整字类型最简洁的实现方法
2014/11/08 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
用Move.js配合创建CSS3动画的入门指引
2015/07/22 Javascript
解读Bootstrap v4 sass设计
2016/05/29 Javascript
javascript基础知识
2016/06/07 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
2019/07/17 Javascript
原生JS运动实现轮播图
2021/01/02 Javascript
Python面向对象编程中关于类和方法的学习笔记
2016/06/30 Python
Python 自动刷博客浏览量实例代码
2017/06/14 Python
Python实现树的先序、中序、后序排序算法示例
2017/06/23 Python
Python实现基本数据结构中栈的操作示例
2017/12/04 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
2018/05/24 Python
基于Python中求和函数sum的用法详解
2018/06/28 Python
opencv python 图像去噪的实现方法
2018/08/31 Python
python得到一个excel的全部sheet标签值方法
2018/12/10 Python
对python 生成拼接xml报文的示例详解
2018/12/28 Python
Windows10下 python3.7 安装 facenet的教程
2019/09/10 Python
python定时任务 sched模块用法实例
2019/11/04 Python
Python socket处理client连接过程解析
2020/03/18 Python
TUMI马来西亚官方网站:国际领先的高品质商旅箱包品牌
2018/04/26 全球购物
Java的基础面试题附答案
2016/01/10 面试题
环境科学专业个人求职信
2013/09/26 职场文书
教师档案管理制度
2014/01/23 职场文书
主题婚礼策划方案
2014/02/10 职场文书
2015年上半年党建工作总结
2015/03/30 职场文书
趣味运动会赞词
2015/07/22 职场文书
MySQL数据库表约束讲解
2022/06/21 MySQL
面试官问我Mysql的存储引擎了解多少
2022/08/05 MySQL