loading请求处理中...

Paypal php接口开发基本流程

2021-12-01 08:57:31 阅读 10430次 标签: 开发 作者: 910156420@qq.com

  php接口开发的话是有多个接口的,其中Paypal因为安全、方便,经常在跨国交易中可以看到的支付方式,因此php接口开发时也常常需要开发Paypal接口。那么,php接口开发 Paypal接口是怎样进行的呢?有哪些特点的呢?一起来了解一下吧。

Paypal php接口开发基本流程

  paypal接口与其它接口有些不同,稍微复杂一点。 其实银行接口也算是一个站点的插件。所谓paypal ipn(Instant Payment Notification),就是Paypal开发的一种能主动通知第三方卖家系统交易状态的一种机制。IPN的原理很简单,就是当产生了一个交易之后, 交易状态发生变化时,如用户已经付款、或者退款、撤销时,Paypal利用常用的HTTP POST方式,将交易的一些变量提交给网站的某个页面(称之为IPN Handler),当这个页面接受到请求时候,将这些数据原封不动加上一个指示验证的cmd=_notify-validate,POST回Paypal 的接口地址,如果数据正确,那么Paypal返回字符串VERIFIED,否则为INVALID,如果结果为VERIFIED,那么你的程序就可以使用这 些数据进行操作。

  开设Sandbox帐号

  但代码的调试是一件很痛苦的事情,因为作为第三方开发人员,不可能开两个帐号,每次测试还要之间交易一些钱,所以Paypal专门开发了 Sandbox给 开发人员进行开发,首先到https://developer.paypal.com/ 注册一个开发帐号,好了之后再进入Sandbox建立测试用的Paypal虚拟帐号(至少应该建立一个Business的和一个Personal的),这 种账号注册方法和Paypal的流程一样,信息可以是假的,包括银行帐号、信用卡(其实Paypal Sandbox会自动生成一些随机的号码)。接下来需要激活Paypal Sandbox的虚拟帐号,注意,这里不管你在Paypal Sanbox注册时填什么邮件地址,有任何发送到虚拟帐号所填邮箱的邮件都存会在开发帐号的管理界面中的Email页(导航栏上有)中。登录 Sandbox的虚拟Paypal环境,还需要验证虚拟帐号的银行,这里可以随便填,然后通过Add Funds来给账户充值(想填多少填多少 920-203 920-533 )。然后,还需要激活IPN的选项,在Business的那个账户的Profile设置页面中,点击,然后点击Edit按钮,打开IPN,这里如果你使用 的是固定的IPN Handle,可以直接将地址填入。

  接下来,我们测试的时候,应该将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 数据更新您的数据库,并处理购物。

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

  php接口开发 Paypal接口大概的流程就是这些,根据这些流程进行是能够完善的做好php接口开发 Paypal接口开发工作的。买创意,买服务,上一品威客网,超600万威客人才随您挑,全方位、多领域的解决你的接口开发需求和难题,还不赶快注册一品威客网账号。

Tag: PHP

后端开发公司推荐

成为一品威客服务商,百万订单等您来有奖注册中

留言( 展开评论

快速发任务

价格是多少?怎样找到合适的人才?

官方顾问免费为您解答

 
后端开发相关任务
DESIGN TASK 更多
可视化展示工具,开发

¥1000 已有2人投标

无人配送车软件开发

¥100000 已有0人投标

批发类小程序B2B开发

¥1000 已有4人投标

Ai写作平台二次开发

¥1000 已有0人投标

Shopify-liquid脚本程序开发

¥100 已有0人投标

多功能教室开发

¥100000 已有1人投标