zen cart实现订单中增加paypal中预留电话的方法
本文实例讲述了zencart实现订单中增加paypal中预留电话的方法。分享给大家供大家参考,具体如下:
在PayPal的IPN返回值中联系电话是contact_phone,前提是你帐户设定了买家在付款时预留电话,如果没有要求的话,该值默认是不会返回的。
但在zencart的PAYPAL的支付插件里是不获取这个信息的,需要手动修改PAYPAL的程序。下面我们就修改:
一、在paypal表中增加contact_phone字段
ALTERTABLE`paypal`ADD`contact_phone`VARCHAR(50)NULLCOMMENT'电话'
二、修改paypal_functions.php文件里的ipn_create_order_array函数
此文件在./includes/modules/payment/paypal目录下
//增加 'contact_phone'=>$_POST['contact_phone'],
修改后如下
/** *CreateorderrecordfromIPNdata */ functionipn_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><tdclass="main">ContactPhone:</td>'; $output.='<tdclass="main">'.$ipn->fields['contact_phone'].'</td></tr>';
更多关于zendframework相关内容感兴趣的读者可查看本站专题:《ZendFrameWork框架入门教程》、《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《smarty模板入门基础教程》及《PHP模板技术总结》。
希望本文所述对大家基于zend框架的PHP程序设计有所帮助。