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和MySQL保存和输出图片
Oct 09 PHP
留言板翻页的实现详解
Oct 09 PHP
PHP 组件化编程技巧
Jun 06 PHP
PHP5.3与5.5废弃与过期函数整理汇总
Jul 10 PHP
如何写php守护进程(Daemon)
Dec 30 PHP
PHP信号量基本用法实例详解
Feb 12 PHP
PHP微信开发之微信录音临时转永久存储
Jan 26 PHP
PHP文件类型检查及fileinfo模块安装使用详解
May 09 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
Jun 03 PHP
php弹出提示框的是实例写法
Sep 26 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
Apr 26 PHP
PHP基于array_unique实现二维数组去重
Jul 14 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 变量类型的强制转换
2009/10/23 PHP
php实现仿写CodeIgniter的购物车类
2015/07/29 PHP
php微信高级接口群发 多客服
2016/06/23 PHP
javascript YUI 读码日记之 YAHOO.util.Dom - Part.4
2008/03/22 Javascript
JavaScript 撑出页面文字换行
2009/06/15 Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
JS正则表达式大全(整理详细且实用)
2013/11/14 Javascript
jquery获得option的值和对option进行操作
2013/12/13 Javascript
jQuery截取指定长度字符串的实现原理及代码
2014/07/01 Javascript
jQuery实现6位数字密码输入框
2016/12/29 Javascript
canvas压缩图片转换成base64格式输出文件流
2017/03/09 Javascript
json2.js 入门教程之使用方法与实例分析
2017/09/14 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
2018/04/26 Javascript
JavaScript实现随机五位数验证码
2019/09/27 Javascript
解决vue自定义指令导致的内存泄漏问题
2020/08/04 Javascript
如何利用vue实现波谱拟合详解
2020/11/05 Javascript
[07:06]2018DOTA2国际邀请赛寻真——卫冕冠军Team Liquid
2018/08/10 DOTA
使用Python程序抓取新浪在国内的所有IP的教程
2015/05/04 Python
Python实现比较两个文件夹中代码变化的方法
2015/07/10 Python
基于Python实现的ID3决策树功能示例
2018/01/02 Python
python操作mysql代码总结
2018/06/01 Python
使用python绘制3维正态分布图的方法
2018/12/29 Python
Python的matplotlib绘图如何修改背景颜色的实现
2019/07/16 Python
用python写测试数据文件过程解析
2019/09/25 Python
基于Django OneToOneField和ForeignKey的区别详解
2020/03/30 Python
Python的PIL库中getpixel方法的使用
2020/04/09 Python
Python datetime模块的使用示例
2021/02/02 Python
博士研究生自我鉴定范文
2013/12/04 职场文书
汽车技术服务英文求职信范文
2014/01/02 职场文书
酒店中秋节活动方案
2014/01/31 职场文书
教师网络培训感言
2014/03/09 职场文书
服务质量承诺书
2014/03/27 职场文书
创建文明城市标语
2014/06/16 职场文书
2014年设计师工作总结
2014/11/25 职场文书
2016年社区文体活动总结
2016/04/06 职场文书
redis 存储对象的方法对比分析
2021/08/02 Redis