php如何接入paypal支付

PHPz
Release: 2020-09-05 11:38:50
Original
5160 people have browsed it

php如何接入paypal支付

php如何接入paypal支付?

第一步、打开https://www.paypal.com/官网,申请一个paypal账号。

第二步、登录账号,并进入https://developer.paypal.com/developer/accounts/。可以看到你申请账号自动配属的两个测试账号,账号类别分别是:BUSINESS和PERSONAL,PERSONAL的账号里面有$9999。

第三步、给两个账号设置密码,点击账号展开,然后点击Profile,弹出账号信息框,进行设置密码等属性。

第四步、在项目支付页面写入下面代码

(paypal的测试环境域名为www.sandbox.paypal.com,正式域名为www.paypal.com。)

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" name="paypal">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="paypal收款账号">
<input type="hidden" name="item_name" value="商品名称-PCB Online Payment">
<input type="hidden" name="item_number" value="可以写入订单ID(备选项)">
<input type="hidden" name="cancel_return" value="取消支付返回url">    
<input type="hidden" name="notify_url" value="支付完成返回url">   
<input type="hidden" name="return" value="支付完成返回url">  
<!-- 货币种类,USD为美元 -->
<input type="hidden" name="currency_code" value="USD">
<!-- 支付金额 -->
<input type="hidden" name="amount" value="8.88">
<input type="submit" value="立即支付" class="sbtn4" />
</form>
Copy after login

第五步、处理返回信息

确认“payment_status”为“Completed”,因为系统也会 为其他结果(如“Pending”或“Failed”)发送 IPN。

检查“txn_id”是否未重复,以防止欺诈者重复使用旧的已 完成的交易。

验证“receiver_email”是已在您的PayPal账户中注册的电子邮件地址,以防止将付款发送到欺诈者的账 户 。

检查其他交易详情(如物品号和价格),以确认价格未改变完成了以上检查后,您可以使用 IPN 数据更新您的数据库,并处理购物。

如果收到“无效”通知,则应将其视为可疑通知,并应对其进行调查。

/**
*处理返回信息的方法
*/
public function notify(){
        if ($this->user_id == false){
            $this->redirect(&#39;user/login&#39;);
        }
        $result = $_POST;
        $order_id = $result[&#39;item_number&#39;];
        if ($order_id){
            $order = D(&#39;order&#39;)->find($order_id);
            $this->assign(&#39;order_num&#39;,$order[&#39;order_num&#39;]);
            //1、先更新订单状态
            if (($order[&#39;pay_status&#39;] == 0) && ($result[&#39;payment_status&#39;] == &#39;Completed&#39;) ){// 支付成功
                $this->update_order($result);
            }
            //2、才能添加支付记录
            if ($order[&#39;pay_status&#39;] == 0){
                $this->add_payment_logs($result);
            }
        }
        $this->assign(&#39;order_id&#39;,$order_id);
        $this->assign(&#39;payment_status&#39;,$result[&#39;payment_status&#39;]);
        $this->assign(&#39;payment_gross&#39;,$result[&#39;payment_gross&#39;]);
        $this->assign(&#39;seo_title&#39;,&#39;notify&#39;);
        $this->display();
    }
Copy after login

更多相关知识,请访问PHP中文网

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template