• 技术文章 >后端开发 >php教程

    php购物网站支付paypal使用方法_PHP教程

    2016-07-21 15:33:29原创599

    详细参考:

    https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_Appx_websitestandard_htmlvariables

    定义常量paypalurl

    const PAYPAL_URL = 'https://www.sandbox.paypal.com/';

    将要传送的数据记录为一个数组

    $paypalData = array(
    'add' => 1,
    'cmd' => '_ext-enter',
    'redirect_cmd' => '_xclick',
    'business' => $paypalAccount, --------liangliangfeng211@gmail.com这个是收款人的paypal账号
    'item_name' => '51customimprint shopping cart',
    'item_number' => $order->id,
    'first_name' => $address->first_name,
    'last_name' => $address->last_name,
    'address1' => $address->address1,
    'city' => $address->city,
    'state' => $address->state_or_province,
    'zip' => $address->zip_code,
    'amount' => $order->subtotal,
    'shipping' => $order->shipping_fee,
    'no_note' => 1,
    'currency_code' => 'USD',
    'lc' => 'US'
    );

    将这个数组转化为一个url地址

    $paypalArguments = array();
    foreach($paypalData as $k => $v){
    array_push($paypalArguments, $k . '=' . urlencode($v));
    }
    $paypalUrl = self::PAYPAL_URL . '?' . implode('&', $paypalArguments);
    $this->_redirect($paypalUrl);

    接下来,我们测试的时候,应该将Paypal接口的地址设置为:

    https://www.sandbox.paypal.com/cgi-bin/webscr

    基本的流程
    当客户向您付款时,PayPal将向位于指定 URL (type=”hidden” name=”notify_url” value=” “)的服务器发送一个通知。此通知中将包括您的客户的所有付款信息(例如,客户名称、金额),以及一段加密代码。当服务器收到通知时,它随后会将该信息(包括加密代码)发送回安全的PayPal URL。PayPal将通过检查加密字符串对交易进行身份验证。这种将 IPN 数据传回PayPal的操作防止了“欺骗”,因此您可以确保 IPN 来自PayPal。在进行验证时,PayPal会将其合法性的确认信息发送回您的服务器。

    提示:要启用即时付款通知,您将需要输入一个 URL,通过它您可以接收到来自您的用户信息的通知。

    启用了即时付款通知后,每次当您接收付款时您的服务器都会收到一个通知,此通知将以隐藏的“FORM POST”的方式发送到指定的 URL,并将包括所有付款信息。此页面的底部列出了通知的 FORM 变量。

    每次收到来自PayPal的 IPN 时,您必须在实施订单之前完成如下所述的通知确认过程。确认列出的信息将可确保交易合法。

    通知确认IPN
    为了确保付款已进入您的PayPal账户,您必须验证用作“receiver_email”的电子邮件地址是否已在您的PayPal账户中注册并得到确认。

    服务器收到即时付款通知后,您将需要通过构建一个发送到PayPal的 HTTP POST 对其进行确认。您的 POST 应发送到 https://www.paypal.com/cgi-bin/webscr

    您必须完全按照收到表单变量时的原样发送所有收到的表单变量。您还需要将一个值为“_notify-validate”的名为“cmd”变量(例如,cmd=_notify-validate)附加到 POST 字符串。

    PayPal将回复该 POST,并在回复的正文中包含一个单词“VERIFIED”或“INVALID”。当您收到 VERIFIED 回复时,您需要在实施订单之前执行若干检查:

    确认“payment_status”为“Completed”,因为系统也会为其他结果(如“Pending”或“Failed”)发送 IPN。
    检查“txn_id”是否未重复,以防止欺诈者重复使用旧的已完成的交易。
    验证“receiver_email”是已在您的PayPal账户中注册的电子邮件地址,以防止将付款发送到欺诈者的账户 。
    检查其他交易详情(如物品号和价格),以确认价格未改变完成了以上检查后,您可以使用 IPN 数据更新您的数据库,并处理购物。
    如果收到“无效”通知,则应将其视为可疑通知,并应对其进行调查。

    www.bkjia.comtruehttp://www.bkjia.com/PHPjc/322638.htmlTechArticle详细参考: https://cms.paypal.com/us/cgi-bin/?cmd=_render-content 将要传送的数据记录为一个数组 $paypalData = array( 'add' = 1, 'cmd' = '_ext-enter', 'redirect_cm...

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 购物网站 支付 paypal 使用方法 详细 参考 https cms.paypal.com cgi-bin c
    上一篇:PHP项目开发中最常用的自定义函数整理_PHP教程 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 一文解析PHP元转分的错误示范(附代码实例)• PHP+Socket系列之实现websocket聊天室• PHP+Socket系列之IO多路复用及实现web服务器• PHP+Socket系列之实现客户端与服务端数据传输• 聊聊PHP escapeshellarg函数使用的中文问题
    1/1

    PHP中文网