PHP整合PayPal支付

 简单整理一下PHP项目整合PayPal支付功能。

一、表单的构建:

1
2
3
4
5
6
7
8
9
10
11
12

<form method="post" name="form" action="https://www.paypal.com/cgi-bin/webscr">
<input type="hidden" name="rm" value="2"/>
<input type="hidden" name="cmd" value="_xclick"/>
<input type="hidden" name="business" value="商家账号"/>
<input type="hidden" name="return" value="返回网址"/>
<input type="hidden" name="cancel_return" value="取消返回网址"/>
<input type="hidden" name="notify_url" value="用于接收PayPal发送的即时付款通知的URL,必须是有效的URL"/>
<input type="hidden" name="item_name" value="物品名称"/>
<input type="hidden" name="item_number" value="可用于跟踪购买或捐赠的传递变量,在付款完成时传回给您"/>
<input type="hidden" name="amount" value="物品的价格(购物车中所有物品的总价格"/>
<input type="hidden" name="currency_code" value="币种"/>
</form>

二、IPN验证部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

<?php
class paypal {
  var $ipn_data = array(); // array contains the POST values for IPN
  var $fields = array(); // 提交给Paypal的表单参数,例:item_name=iPhone 6,quantity=1,amount=499,currency_code=USD等所有表单信息,
                     // 在调用验证IPN之前事先需要初始化好
  var $paypal_url = 'https://www.paypal.com/cgi-bin/webscr';//sandbox:https://www.sandbox.paypal.com/cgi-bin/webscr
  
  function validate_ipn() {//验证IPN
      // parse the paypal URL
      $url_par=parse_url($this->paypal_url);
      // generate the post string from the _POST vars aswell as load the
      // _POST vars into an arry so we can play with them from the calling
      // script.
      $post_str = '';
      foreach ($_POST as $field=>$value) {
        $this->ipn_data["$field"] = $value;
        $post_str .= $field.'='.urlencode(stripslashes($value)).'&';
      }
      $post_str.="cmd=_notify-validate"; // append ipn command
      // open the connection to paypal
      $fp = fsockopen($url_par[host],"80",$errnum,$errstr,30);
      if(!$fp) {
        // could not open the connection.
        return false;
      } else {
        // Post the data back to paypal
        fputs($fp, "POST ".$url_par[path]." HTTP/1.1rn");
        fputs($fp, "Host: ".$url_par[host]."rn");
        fputs($fp, "Content-type: application/x-www-form-urlencodedrn");
        fputs($fp, "Content-length: ".strlen($post_str)."rn");
        fputs($fp, "Connection: closernrn");
        fputs($fp, $post_str . "rnrn");
        // loop through the response from the server and append to variable
        while(!feof($fp)) {
          $this->validate_ipn_response .= fgets($fp, 1024);
        }
        fclose($fp); // close connection
     }
    if (eregi("VERIFIED",$this->validate_ipn_response)) {
      return true;
    } else {
      return false;
    }
  }
}
?>

以上所述就是本文的全部内容了,希望大家能够喜欢。

时间: 2016-06-12

PHP整合PayPal支付的相关文章

PHP整合PayPal支付_php技巧

简单整理一下PHP项目整合PayPal支付功能. 一.表单的构建: <form method="post" name="form" action="https://www.paypal.com/cgi-bin/webscr"> <input type="hidden" name="rm" value="2"/> <input type="hidde

【硅谷连线】传PayPal拟整合比特币支付服务 德国柏林禁用Uber

中云网每天连线硅谷,呈现最新鲜资讯!这里的硅谷指的是国外具有典型性和创新性企业代表. 1. 传三星收购SmartThings交易金额达2亿美元 http://tech.sina.com.cn/it/2014-08-15/08209555796.shtml 北京时间8月15日早间消息,三星已经收购了智能家居控制器创业公司SmartThings.三星没有披露这笔交易的价格,但美国科技博客Re/code援引消息人士的说法称,三星支付了约2亿美元. 三星表示,SmartThings将继续由现任CEO及创

Android下集成Paypal支付

近期项目需要研究paypal支付,官网上的指导写的过于复杂,可能是老外的思维和中国人不一样吧.难得是发现下面这篇文章: http://www.androidhive.info/2015/02/Android-integrating-paypal-using-PHP-MySQL-part-1/ 在这篇文章的基础上,查看SDK简化了代码,给出下面这个例子,测试通过. 其实集成paypal还是非常简单的,真正的输入账户.付款都在SDK自带的Activity和service上完成,我们要做的事情,是从自

正在探索把比特币融入PayPal支付网络中的方式

据国外媒体报道,eBay首席执行官约翰-多纳霍(John Donahoe)周二表示,该公司可能向虚拟货币比特币敞开大门,正在探索把比特币融入PayPal支付网络中的方式. 多纳霍表示,"比特币是一个颠覆性的技术,所以我们正在对它进行密切的研究.或许有可能把比特币融入到PayPal当中."融入到PayPal网络当中,能够让比特币获得所需的正统性.目前仅被少数商家接受的比特币,绝大多数均由指望着价格波动获利的投机者所持有.近期,比特币的价值出现了大幅的波动. 不过多纳霍也表示,eBay还没

解析PayPal支付接口的PHP开发方式

申请PayPal注册网址:https://www.paypal.com/ paypal接口与其它接口有些不同,稍微复杂一点. 其实银行接口也算是一个站点的插件. 所谓paypal ipn(Instant Payment Notification),就是Paypal开发的一种能主动通知第三方卖家系统交易状态的一种机制.IPN的原理很简单,就是当产生了一个交易之后, 交易状态发生变化时,如用户已经付款.或者退款.撤销时,Paypal利用常用的HTTP POST方式,将交易的一些变量提交给网站的某个页

ecshop paypal支付相关问题

问题描述 ecshop paypal支付相关问题 用ECShop开发的一个商城网站,一直使用着paypal支付方式,都没有问题,但是今天突然出现了问题,就是可以充值到收款账户,但是返回的strcmp($aVERIFIED"") = -1了,导致不能修改用户金额状态,有大神知道该如何解决吗~~~~~求救求救

android开发-Android请问谁用过PayPal支付,告诉我一下

问题描述 Android请问谁用过PayPal支付,告诉我一下 支付流程一般是用户支付完以后,如果成功,则告诉服务器哪个用户支付成功,支付了些什么...这些信息. 然而我在PayPal的官方SDK里面没有找到类似的字段. 只是在支付成功以后客户端自身会返回一个result,但是这个Result没用啊.根本不能用来和服务器确认付款状况啊.

PHP语言开发Paypal支付demo的具体实现

一.开发前准备 https://developer.paypal.com/  到paypal的开发者官网注册开发者账号. 用账号登录之后.点击导航上面的 dashboard.进入dashboard面版.如下截图.后续的操作都是在这个面板中操作. 上面截图中菜单 Sandbox下面的Accounts里面能看到你的 sandbox测试的买家账号和卖家账号.2个测试账号里面都有profile选项里面有changepassword可以设置虚拟账号的密码. 上面截图中菜单Sandbox下面的Transac

Java PayPal支付接口,疑问~求解答

问题描述 需求如下:1)选择PayPal支付提交订单后跳转到PayPal登陆支付,返回的参数做保存判断.1)根据保存的交易号或者事务号做退款操作已经找到了PayPal给的接口实例,但是他喵的我真的没找到哪里给我跳转弹窗出PayPal页面的代码.文档读的一阵阵蛋疼,贴出部分实例代码如下://##Create//SampleshowingtocreateaPaymentusingPayPal//付款实例@OverrideprotectedvoiddoPost(HttpServletRequestre