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下把数组保存为文件格式的实例应用
Feb 08 PHP
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
May 29 PHP
php和jquery实现地图区域数据统计展示数据示例
Feb 12 PHP
ThinkPHP采用原生query实现关联查询left join实例
Dec 02 PHP
php进行支付宝开发中return_url和notify_url的区别分析
Dec 22 PHP
php对文件进行hash运算的方法
Apr 03 PHP
PHP中的静态变量及static静态变量使用详解
Nov 05 PHP
thinkPHP5.0框架环境变量配置方法
Mar 17 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
PHP实现普通hash分布式算法简单示例
Aug 06 PHP
thinkphp3.2框架中where条件查询用法总结
Aug 13 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
php5 mysql分页实例代码
2008/04/10 PHP
php5.3不能连接mssql数据库的解决方法
2014/12/27 PHP
让div层随鼠标移动的实现代码 ie ff
2009/12/18 Javascript
javascript自然分类法算法实现代码
2013/10/11 Javascript
jquery+easeing实现仿flash的载入动画
2015/03/10 Javascript
AngularJS中的过滤器filter用法完全解析
2016/04/22 Javascript
利用JS实现页面删除并重新排序功能
2016/12/09 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
2017/02/14 Javascript
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
React Native react-navigation 导航使用详解
2017/12/01 Javascript
基于Vue制作组织架构树组件
2017/12/06 Javascript
layui弹出层按钮提交iframe表单的方法
2018/08/20 Javascript
基于javascript的拖拽类封装详解
2019/04/19 Javascript
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
[41:41]TFT vs Secret Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python实现的Kmeans++算法实例
2014/04/26 Python
解决PyCharm控制台输出乱码的问题
2019/01/16 Python
手把手教你使用Python创建微信机器人
2019/04/29 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
2019/05/15 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
python实现引用其他路径包里面的模块
2020/03/09 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
python 实现socket服务端并发的四种方式
2020/12/14 Python
PyCharm常用配置和常用插件(小结)
2021/02/06 Python
用纯CSS3实现网页中常见的小箭头
2017/10/16 HTML / CSS
Onzie官网:美国时尚瑜伽品牌
2019/08/21 全球购物
什么是Remote Module
2016/06/10 面试题
设计部经理的岗位职责
2013/11/16 职场文书
竞选部门副经理的自荐书范文
2014/02/11 职场文书
公司领导班子对照检查存在问题整改措施
2014/10/02 职场文书
停课通知书
2015/04/24 职场文书
2015年防汛工作总结
2015/05/15 职场文书
找规律教学反思
2016/02/23 职场文书
golang 生成对应的数据表struct定义操作
2021/04/28 Golang
GTX1650super好不好 gtx1650super显卡属于什么级别
2022/04/08 数码科技