- 浏览: 399678 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
goahead2010:
有用
JS遍历对象或者数组 -
bishibaodian:
不要在这样找笔试题了,一次就这么几个,还没过瘾就没有了,去安装 ...
整理了一份招PHP高级工程师的面试题 -
smallearth:
不错
整理了一份招PHP高级工程师的面试题 -
ipodao:
暂时没发现啊!
IE域名带有下划线导致的session丢失 -
ipodao:
谢了
JS遍历对象或者数组
1.注册开发者账号,注册完登陆,然后新建一个Business账号和一个Personal账号,然后选择一个账号登陆,可以看到一些明细之类的东东,
2.几个地址
a.return ---就是付款完成之后返回的页面
b.notify_url ---付完款之后PayPal通知你的页面,这个页面会处理逻辑(包括接受IPN信息,验证, 判断是否付款完成以及你付款完成之后的后续逻辑处理)
c.cancel_return ----就是在跳到付款页面直接取消回到的页面
3.你的页面上生成一个form表单,然后把你的需要支付的信息放到表单的hidden里面,例如:
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> <input type="hidden" name="cmd" value="_xclick"> <input type="hidden" name="business" value="business email"> <!--接受付款的账号 > <input type="hidden" name="item_name" value="cash"> <input type="hidden" name="amount" value="0.5"> <input type="hidden" name="currency_code" value="HKD"> <input type="hidden" name="return" value="http://xxx/paypal_return.php"> <input type="hidden" name="invoice" value="82"> <input type="hidden" name="charset" value="utf-8"> <input type="hidden" name="no_shipping" value="1"> <input type="hidden" name="no_note" value=""> <input type="hidden" name="notify_url" value="http://xxx/paypal_notify.php"> <input type="hidden" name="rm" value="82"> <input type="hidden" name="cancel_return"value="http://xxx/paypal_cancel.php"> <input type="submit" value="submit"> </form>
4.最重要的paypal.notify.php页面
a.接受Paypal post给你的数据,完全按照收到表单变量时的原样发送所有收到的表单变量。您还需要将一个值为“_notify-validate”的名为“cmd”变量(例如,cmd=_notify-validate)附加到 POST 字符串。
b.然后把post过来的数据加上标签和修改的cmd请求PayPal页面
c.PayPal将回复该 POST,并在回复的正文中包含一个单词“VERIFIED”或“INVALID”。当您收到 VERIFIED 回复时, 在实施订单之前执行若干检查:
@确认“payment_status”为“Completed”,因为系统也会为其他结果(如“Pending”或“Failed”)发送 IPN。
@检查“txn_id”是否未重复,以防止欺诈者重复使用旧的已完成的交易。
@验证“receiver_email”是已在您的PayPal账户中注册的电子邮件地址,以防止将付款发送到欺诈者的账户 。
@检查其他交易详情(如物品号和价格),以确认价格未改变完成了以上检查后,您可以使用 IPN 数据更新您的DB,并 处理购物。
@如果收到“无效”通知,则应将其视为可疑通知,并应对其进行调查。
d.最后正式部署的时候需要去掉sandbox
<?php //reading raw POST data from input stream. reading pot data from $_POST may cause serialization issues since POST data may contain arrays $raw_post_data = file_get_contents('php://input'); $raw_post_array = explode('&', $raw_post_data); $myPost = array(); foreach ($raw_post_array as $keyval) { $keyval = explode ('=', $keyval); if (count($keyval) == 2) $myPost[$keyval[0]] = urldecode($keyval[1]); } // read the post from PayPal system and add 'cmd' $req = 'cmd=_notify-validate'; if(function_exists('get_magic_quotes_gpc')) { $get_magic_quotes_exits = true; } foreach ($myPost as $key => $value) { if($get_magic_quotes_exits == true && get_magic_quotes_gpc() == 1) { $value = urlencode(stripslashes($value)); } else { $value = urlencode($value); } $req .= "&$key=$value"; } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://www.sandbox.paypal.com/cgi-bin/webscr'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_POSTFIELDS, $req); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: www.paypal.com')); // In wamp like environment where the root authority certificate doesn't comes in the bundle, you need // to download 'cacert.pem' from "http://curl.haxx.se/docs/caextract.html" and set the directory path // of the certificate as shown below. // curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem'); $res = curl_exec($ch); curl_close($ch); /* file_put_contents(dirname(__FILE__) . '/payresp/rc_req.txt', print_r($req, true)); file_put_contents(dirname(__FILE__) . '/payresp/rc_resp.txt', print_r($res, true)); file_put_contents(dirname(__FILE__) . '/payresp/rc_post.txt', print_r($_POST, true)); */ // assign posted variables to local variables $item_name = $_POST['item_name']; $item_number = $_POST['item_number']; $payment_status = $_POST['payment_status']; $payment_amount = $_POST['mc_gross']; $payment_currency = $_POST['mc_currency']; $txn_id = $_POST['txn_id']; $receiver_email = $_POST['receiver_email']; $payer_email = $_POST['payer_email']; if (strcmp ($res, "VERIFIED") == 0) { // check the payment_status is Completed // check that txn_id has not been previously processed // check that receiver_email is your Primary PayPal email // check that payment_amount/payment_currency are correct // process payment } else if (strcmp ($res, "INVALID") == 0) { // log for manual investigation } ?>
发表评论
-
引用和global
2013-02-01 18:05 790<?php $var1 = 1; $var ... -
面向对象之多态
2013-02-01 17:49 943Java实现 //定义接口Animal interf ... -
PHP HTTP Authentication
2012-11-22 17:39 856<?php $config['admin_ ... -
PHP实现的栈
2012-11-16 13:44 925<?php class Stack{ ... -
pearl && pecl
2012-09-21 15:02 923Pear:是PHP的扩展代码包,所有的扩展均以PHP代码的形式 ... -
PHP中 Magic quotes
2012-06-26 17:45 1292什么是 Magic Quotes? Magic Quo ... -
php请求
2012-06-20 15:25 905wev-server处理一个php请求,是给 ... -
一个CURD的demo
2012-06-13 16:19 0一个后台管理的demo -
php
2012-06-09 18:22 0redis是个单线程的程序,为什么会这么快呢?每秒100 ... -
PHP的工作模型
2012-06-05 17:16 1330http://www.mike.org.cn/arti ... -
phpstorm3.0以下的注册码
2012-03-31 09:52 864EMBRACE ===== LICENSE B ... -
call_user_func函数和call_user_func_array函数
2012-03-09 14:56 9681.call_user_func函数是当需要动态调用函数时,才 ... -
SNS
2012-03-08 16:09 01.AS可以打包多个请求成一个包然后一起发送,服务端然后一个一 ... -
PHP this,self 和 parent 关键字
2012-02-29 22:23 860我们先建立几个概念,这三个关键字分别是用在什么地方 呢? ... -
一些截取的函数
2012-02-29 18:33 0<?php $str = 'abcdk123 ... -
细说PHP中strlen和mb_strlen的区别
2012-02-29 16:53 1279在PHP中,strlen与mb_strlen ... -
PHP数据库
2012-02-28 16:36 0但对于 PHP 语言来说它是放在 Apache 上的,每一个请 ... -
PHP取权重
2012-02-17 14:42 1031在实际的开发过程中,经常会用到一些几率的时间,例如有这样一个奖 ... -
整理了一份招PHP高级工程师的面试题
2012-02-08 09:04 421501. 基本知识点 HTTP协议中几个状态码的含义:1xx( ... -
浅谈 PHP-MySQL, PHP-MySQLi, PDO 的差异
2012-02-06 16:13 1148http://blog.roga.tw/2010/06/%E6 ...
相关推荐
paypal集成代码。亲测无误!直接稍微修改即可使用
PHP程序集成PayPal操作步骤[借鉴].pdf
前两天一个客户需要在网站上集成PayPal支付功能,查了一下资料,简单记录如下
贝宝PHP 用php编写的简单程序,用于集成贝宝支付网关。
paypal-codeigniter, 完整的PayPal经典API库用于 PHP PayPal库 简介PayPal类库使几乎所有的PayPal API集成起来变得很容易。包括在篓文档的所有 Web服务 中,以及自适应帐户。自适应付款。权限。发票,等等。服务器...
Symfony 5项目,展示如何实现和集成PayPal的API。 包括Braintree,V2订单,付款,账单,与PayPal连接等... :play_button: 它是直播吗? 演示版请参阅我们的演示网站。 :floppy_disk: 我们如何工作? Git克隆项目: ...
如何在Laravel中集成PayPal付款网关。 Laravel中的Paypal集成
虽然在中国paypal不是很流行,但如果把范围扩大到世界的话,那paypal无疑就是老大了。
paypal快捷支付文档及示例 包含文档 PayPal_BPI_Tech_Guide_V1.0.pdf PayPal_EC_NVP_Guide_CN_V2.0.pdf PayPal_IPN&PDT_Guide_V1.0.pdf BN Code集成指南.pdf PP_PHP_NVP_Samples.zip
Angell EYE PayPal PHP库通过此用于PayPalPHP类库,可以轻松集成PayPal API,包括和经典API,例如,, 和 。服务器要求PHP版本5.3.0或更高版本。 卷曲安装影片总览作曲家安装使用以下部分创建composer.json文件,...
Php Phalcon 上的 Paypal paypal 库类和控制器助手,以简单的方式将 paypal 支付与 php phalcon 框架集成。 实际上它取自并进行了一些修改以与 Phalcon 框架集成。用法 : 在 config.ini 中: [paypal] apiUsername ...
laravel-paypal-app 以简单的方式将PayPal Payment Gateway集成到Laravel 7中。
PayPal作为全球运用最广的在线支付工具,一直被很多外贸B2C网站纳为首选支付...不过对于自主开发网站的商户来说,PayPal接口的集成经常遇到很多问题,今天Lance就在这里给大家分享一下php项目中PayPal接口的集成方法。
集成微信支付宝 paypal以及国外主流支付方式,自带文章博客系统。 软件架构 基于MVC+语言包模式,增加控制台,api导入产品方便对接其他系统。 使用要求 PHP7.4+ MYSQL5.6+ REDIS(可选) 安装方法 composer ...
压缩包中还含有相关的其他技术文档,都是中文版的,这些文档会教给你如何去做paypal的接口和参数的回收,和其他一些接口参数变量,让你轻松的完成paypal的集成。 压缩包中有asp,php,.net,jsp的代码实例。 虽然分数高...
具有预配置的Paypal集成的Yii 2高级应用程序模板使用Paypal集成进行整个Yii2设置。 无需实现特定的类。 继续尝试。 您可以在frontend / controllers / SiteController的index操作中找到一个示例。 在common / ...
使用PHP / PDO,PHPMailer,ReCaptcha和PayPal的电子商务网站 描述 这是一个具有安全注册和在线支付功能的电子商务网站项目。 该项目是使用PHP,PDO,MySQL数据库,HTML,CSS和其他插件开发的。 该电子商务站点项目...
如果您需要将网站与PayPal REST API集成在一起,则只需下载此库即可开始使用。 您只需要下载和导入到项目中的两个文件。 重要提示:在阅读我的博客文章“如何将您的网站与PayPal集成”。 如何安装 ##步骤1 在名...
安装通过作曲家$ composer require hypnodev/larapal 使用以下命令发布配置: $ php artisan vendor:publish --provider= " hypnodev\Larapal\LarapalServiceProvider " 将这些密钥添加到您的.env中: PAYPAL_MODE=...