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 相关文章推荐
第九节 绑定 [9]
Oct 09 PHP
怎么使 Mysql 数据同步
Oct 09 PHP
dedecms 制作模板中使用的全局标记图文教程
Mar 11 PHP
php 3行代码的分页算法(求起始页和结束页)
Oct 21 PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
May 04 PHP
分享一个PHP数据流应用的简单例子
Jun 01 PHP
php隐藏实际地址的文件下载方法
Apr 18 PHP
php+html5基于websocket实现聊天室的方法
Jul 17 PHP
php面向对象编程self和static的区别
May 08 PHP
php实现的简单中文验证码功能示例
Jan 03 PHP
深入理解 PHP7 中全新的 zval 容器和引用计数机制
Oct 15 PHP
php使用filter_var函数判断邮箱,url,ip格式示例
Jul 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 数组实例说明
2008/08/18 PHP
php加密解密实用类分享
2014/01/07 PHP
去除php注释和去除空格函数分享
2014/03/13 PHP
PHP遍历文件夹与文件类及处理类用法实例
2014/09/23 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
PHP标准库(PHP SPL)详解
2019/03/16 PHP
Prototype 学习 工具函数学习($A方法)
2009/07/12 Javascript
JavaScript 嵌套函数指向this对象错误的解决方法
2010/03/15 Javascript
Jquery多选框互相内容交换的实例代码
2013/07/04 Javascript
jquery sortable的拖动方法示例详解
2014/01/16 Javascript
HTML,CSS,JavaScript速查表推荐
2014/12/02 Javascript
jQuery实现的多屏图像图层切换效果实例
2015/05/07 Javascript
js实现文字垂直滚动和鼠标悬停效果
2015/12/31 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
2017/01/19 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
详解angular2实现ng2-router 路由和嵌套路由
2017/03/24 Javascript
一个Vue视频媒体多段裁剪组件的实现示例
2018/08/09 Javascript
element ui 表格动态列显示空白bug 修复方法
2018/09/04 Javascript
微信小程序云开发使用方法新手初体验
2019/05/16 Javascript
JS实现滑动拼图验证功能完整示例
2020/03/29 Javascript
动态实现element ui的el-table某列数据不同样式的示例
2021/01/22 Javascript
举例讲解Python中的Null模式与桥接模式编程
2016/02/02 Python
Python实现类似jQuery使用中的链式调用的示例
2016/06/16 Python
Python3 修改默认环境的方法
2019/02/16 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
2020/04/26 Python
戴森台湾线上商城:Dyson Taiwan
2018/05/21 全球购物
Android笔试题总结
2014/11/29 面试题
购房协议书范本
2014/04/11 职场文书
安全生产标语
2014/06/06 职场文书
被告答辩状范文
2015/05/22 职场文书
邹越演讲观后感
2015/06/15 职场文书
大学开学典礼新闻稿
2015/07/17 职场文书
2015新教师教学工作总结
2015/07/22 职场文书
《哪吒之魔童降世》观后感:世上哪有随随便便的成功
2019/11/08 职场文书
为Java项目添加Redis缓存的方法
2021/05/18 Redis