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
用PHP的ob_start();控制您的浏览器cache!
Nov 25 PHP
ThinkPHP php 框架学习笔记
Oct 30 PHP
Cakephp 执行主要流程
Mar 24 PHP
php生成略缩图代码
Jul 16 PHP
dedecms中使用php语句指南
Nov 13 PHP
php上传文件并显示上传进度的方法
Mar 24 PHP
php生成图片验证码的方法
Apr 15 PHP
PHP实现统计在线人数功能示例
Oct 15 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
Jun 07 PHP
php curl批处理实现可控并发异步操作示例
May 09 PHP
PHP+Mysql分布式事务与解决方案深入理解
Feb 27 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/30 PHP
PHP中isset与array_key_exists的区别实例分析
2015/06/02 PHP
PHP操作Redis常用技巧总结
2018/04/24 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
2021/03/09 PHP
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
给文字加上着重号的JS代码
2013/11/12 Javascript
javascript简单实现图片预加载
2014/12/03 Javascript
基于javascript实现的搜索时自动提示功能
2014/12/26 Javascript
jQuery $.each遍历对象、数组用法实例
2015/04/16 Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
2015/07/17 Javascript
Bootstrap轮播加上css3动画,炫酷到底!
2015/12/22 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
Nuxt.js实现校验访问浏览器类型的中间件
2018/08/24 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
微信小程序 冒泡事件原理解析
2019/09/27 Javascript
javascript设计模式 ? 备忘录模式原理与用法实例分析
2020/04/21 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
python创建线程示例
2014/05/06 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
2019/12/27 Python
在tensorflow中实现屏蔽输出的log信息
2020/02/04 Python
Windows下Anaconda和PyCharm的安装与使用详解
2020/04/23 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
2020/04/26 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
金山毒霸系列的笔试题
2013/04/13 面试题
中文系师范生自荐信
2013/10/01 职场文书
高一政治教学反思
2014/01/28 职场文书
爱祖国爱家乡演讲稿
2014/09/02 职场文书
安全保证书
2015/01/16 职场文书
2015年社区统计工作总结
2015/04/21 职场文书
在职证明书模板
2015/06/15 职场文书
公司回复函格式
2015/07/14 职场文书
致运动员的广播稿
2015/08/19 职场文书
解决使用了nginx获取IP地址都是127.0.0.1 的问题
2021/09/25 Servers