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 中的一些经验积累
Oct 09 PHP
一个用于mysql的数据库抽象层函数库
Oct 09 PHP
PHP的error_reporting错误级别变量对照表
Jul 08 PHP
thinkphp在模型中自动完成session赋值示例代码
Sep 09 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
Nov 20 PHP
php简单socket服务器客户端代码实例
May 18 PHP
FleaPHP框架数据库查询条件($conditions)写法总结
Mar 19 PHP
CI配置多数据库访问的方法
Mar 28 PHP
PHP中addslashes与mysql_escape_string的区别分析
Apr 25 PHP
PHP批量删除jQuery操作
Jul 23 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
Jun 12 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/03/27 PHP
PHP 存储文本换行实现方法
2010/01/05 PHP
Laravel中使用阿里云OSS Composer包分享
2015/02/10 PHP
php实现QQ空间获取当前用户的用户名并生成图片
2015/07/25 PHP
PHP的邮件群发系统phplist配置方法详细总结
2016/03/30 PHP
javascript奇异的arguments分析
2010/10/20 Javascript
javascript删除option选项的多种方法总结
2013/11/22 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
JavaScript中日期函数的相关操作知识
2016/08/03 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
w3c编程挑战_初级脚本算法实战篇
2017/06/23 Javascript
vue.js项目nginx部署教程
2018/04/05 Javascript
详解vue-element Tree树形控件填坑路
2019/03/26 Javascript
[00:14]PWL:老朋友Mushi拍VLOG与中国玩家问好
2020/11/04 DOTA
Python实战小程序利用matplotlib模块画图代码分享
2017/12/09 Python
python类的方法属性与方法属性的动态绑定代码详解
2017/12/27 Python
Python 处理图片像素点的实例
2019/01/08 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
python 读取更新中的log 或其它文本方式
2019/12/24 Python
python pymysql库的常用操作
2020/10/16 Python
解决PyCharm无法使用lxml库的问题(图解)
2020/12/22 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
2021/01/06 Python
HTML5实现表单自动验证功能实例代码
2017/01/11 HTML / CSS
KEETSA环保床垫:更好的睡眠,更好的生活!
2016/11/24 全球购物
波兰办公用品和学校用品在线商店:Dlabiura24.pl
2020/11/18 全球购物
毕业生就业自荐书
2013/12/15 职场文书
成功的酒店创业计划书
2013/12/27 职场文书
个人职业生涯规划书1500字
2013/12/31 职场文书
工艺员岗位职责
2014/02/11 职场文书
广告学专业自荐信范文
2014/02/24 职场文书
连带责任保证书
2014/04/29 职场文书
全运会口号
2014/06/20 职场文书
个人授权委托书范文
2014/09/21 职场文书
银行贷款委托书范本
2014/10/11 职场文书