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 IN_ARRAY 函数使用注意事项
Jul 24 PHP
php提示无法加载或mcrypt没有找到 PHP 扩展 mbstring解决办法
Mar 27 PHP
ThinkPHP缓存方法S()概述
Jun 13 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
Aug 19 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
Nov 04 PHP
PHP中的Streams详细介绍
Nov 12 PHP
php管理nginx虚拟主机shell脚本实例
Nov 19 PHP
php运行时动态创建函数的方法
Mar 16 PHP
使用PHP接受文件并获得其后缀名的方法
Aug 05 PHP
PHP验证终端类型是否为手机的简单实例
Feb 07 PHP
Laravel学习基础之migrate的使用教程
Oct 11 PHP
PHP如何通过带尾指针的链表实现'队列'
Oct 22 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
追忆往昔!浅谈收音机的百年发展历史
2021/03/01 无线电
在PHP中运行Linux命令并启动SSH服务的例子
2014/06/12 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
2014/12/19 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
php获取当前页面完整URL地址
2015/12/30 PHP
jQuery输入城市查看地图使用介绍
2013/05/08 Javascript
js中的前绑定和后绑定详解
2013/08/01 Javascript
一个网页标题title的闪动提示效果实现思路
2014/03/22 Javascript
node.js中的fs.exists方法使用说明
2014/12/17 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
基于Vue如何封装分页组件
2016/12/16 Javascript
validationEngine 表单验证插件使用实例代码
2017/06/15 Javascript
JavaScript判断日期时间差的实例代码
2018/03/01 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
小程序实现图片移动缩放效果
2020/05/26 Javascript
[01:00:30]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第二场 10.31
2020/11/02 DOTA
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
解读! Python在人工智能中的作用
2017/11/14 Python
TensorFlow实现RNN循环神经网络
2018/02/28 Python
实例讲解python中的序列化知识点
2018/10/08 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
python 浅谈serial与stm32通信的编码问题
2019/12/18 Python
基于Python爬取素材网站音频文件
2020/10/21 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
python实现b站直播自动发送弹幕功能
2021/02/20 Python
HTML5之SVG 2D入门8—文档结构及相关元素总结
2013/01/30 HTML / CSS
护理专业优质毕业生自荐书
2014/01/31 职场文书
大专会计自我鉴定
2014/02/06 职场文书
《埃及的金字塔》教学反思
2014/04/07 职场文书
师德师风个人整改措施
2014/10/27 职场文书
民事调解书范文
2015/05/20 职场文书
母亲去世追悼词
2015/06/23 职场文书
青年岗位能手事迹材料(2016推荐版)
2016/03/01 职场文书
疑《守望先锋2》A测截图泄露 或将推出新模式、新界面
2022/04/03 其他游戏