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 相关文章推荐
linux php mysql数据库备份实现代码
Mar 10 PHP
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
Nov 26 PHP
PHP读取数据库并按照中文名称进行排序实现代码
Jan 29 PHP
解析PHPExcel使用的常用说明以及把PHPExcel整合进CI框架的介绍
Jun 24 PHP
使用PHP备份MYSQL数据的多种方法
Jan 15 PHP
php写入、删除与复制文件的方法
Jun 20 PHP
thinkphp框架实现数据添加和显示功能
Jun 29 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
Jul 03 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
PHP异步进程助手async-helper
Feb 05 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
Apr 20 PHP
PHP按一定比例压缩图片的方法
Oct 12 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
Symfony控制层深入详解
2016/03/17 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
2016/05/18 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
2018/09/07 PHP
JavaScript 获取事件对象的注意点
2009/07/29 Javascript
理解Javascript_07_理解instanceof实现原理
2010/10/15 Javascript
再说AutoComplete自动补全之实现原理
2011/11/05 Javascript
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
JavaScript中继承用法实例分析
2015/05/16 Javascript
iscroll.js的上拉下拉刷新时无法回弹的解决方法
2016/02/18 Javascript
第五章之BootStrap 栅格系统
2016/04/25 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
将JSON字符串转换成Map对象的方法
2016/11/30 Javascript
原生js编写基于面向对象的分页组件
2016/12/05 Javascript
vue实现ajax滚动下拉加载,同时具有loading效果(推荐)
2017/01/11 Javascript
详解使用jQuery.i18n.properties实现js国际化
2018/05/04 jQuery
vue如何引入sass全局变量
2018/06/28 Javascript
python paramiko实现ssh远程访问的方法
2013/12/03 Python
python实现360的字符显示界面
2014/02/21 Python
Python实现115网盘自动下载的方法
2014/09/30 Python
Django rest framework基本介绍与代码示例
2018/01/26 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
解决新django中的path不能使用正则表达式的问题
2018/12/18 Python
使用python实现多维数据降维操作
2020/02/24 Python
python实现遍历文件夹图片并重命名
2020/03/23 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
2020/05/23 Python
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
HTML5轻松实现全屏视频背景的示例
2018/04/23 HTML / CSS
世界领先的在线地板和建筑材料批发商:BuildDirect
2017/02/26 全球购物
五水共治捐款倡议书
2014/05/14 职场文书
店铺转让协议书(2014版)
2014/09/23 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
合作意向协议书
2015/01/29 职场文书
幼师辞职信范文
2015/02/27 职场文书
Python通过m3u8文件下载合并ts视频的操作
2021/04/16 Python
详解Python生成器和基于生成器的协程
2021/06/03 Python