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 相关文章推荐
基于mysql的bbs设计(三)
Oct 09 PHP
php遍历目录viewDir函数
Dec 15 PHP
PHP CodeBase:将时间显示为&quot;刚刚&quot;&quot;n分钟/小时前&quot;的方法详解
Jun 06 PHP
利用PHP+JS实现搜索自动提示(实例)
Jun 09 PHP
提高PHP编程效率的方法
Nov 07 PHP
PHP图片添加水印功能示例小结
Oct 03 PHP
PHP错误和异常处理功能模块示例
Nov 12 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
May 09 PHP
PHP魔术方法之__call与__callStatic使用方法
Jul 23 PHP
PHP中“=&gt;
Mar 01 PHP
详解PHP 二维数组排序保持键名不变
Mar 06 PHP
laravel 解决Validator使用中出现的问题
Oct 25 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
乐信RP2100的电路分析和打磨
2021/03/02 无线电
给多个地址发邮件的类
2006/10/09 PHP
安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法
2007/04/16 PHP
PHP开发负载均衡指南
2010/07/17 PHP
PHP如何将log信息写入服务器中的log文件
2015/07/29 PHP
php文件系统处理方法小结
2016/05/23 PHP
php实现websocket实时消息推送
2018/03/30 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
javascript css styleFloat和cssFloat
2010/03/15 Javascript
缓动函数requestAnimationFrame 更好的实现浏览器经动画
2012/12/07 Javascript
jQuery中element选择器用法实例
2014/12/29 Javascript
基于javascript实现样式清新图片轮播特效
2016/03/30 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
js中获取jsp表单中radio类型的值简单实例
2016/08/15 Javascript
JavaScript实现简单的日历效果
2016/09/25 Javascript
基于jquery实现的鼠标悬停提示案例
2016/12/11 Javascript
JS实现的tab切换选项卡效果示例
2017/02/28 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
2017/04/22 Javascript
JavaScript实现body内任意节点的自定义属性功能示例
2017/09/18 Javascript
仿京东快报向上滚动的实例
2017/12/13 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
在vue项目中引入highcharts图表的方法
2019/01/21 Javascript
python中偏函数partial用法实例分析
2015/07/08 Python
python可视化实现代码
2019/01/15 Python
Python3 关于pycharm自动导入包快捷设置的方法
2019/01/16 Python
python3实现点餐系统
2019/01/24 Python
python修改文件内容的3种方法详解
2019/11/15 Python
基于Python中的yield表达式介绍
2019/11/19 Python
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
医药类个人求职的自我评价
2014/02/12 职场文书
诚信考试承诺书
2014/03/27 职场文书
车间安全生产标语
2014/06/06 职场文书
优秀教师先进个人事迹材料
2014/08/31 职场文书
公司授权委托书格式样本
2014/10/01 职场文书
导游词格式
2015/02/13 职场文书
详解Java实践之适配器模式
2021/06/18 Java/Android