php - 使用不可更改的特定地址打开 PayPal 付款
问题描述
我从被黑的账户中收到了很多使用 PayPal 进行的欺诈性付款,最终以拒付告终,我浪费了大量的金钱和时间。
我正在想象一个系统,我可以向我的客户询问电子邮件地址,并向他们发送带有按钮的电子邮件,以验证他们是否可以访问他们的邮箱,如果可以,允许他们使用 PayPal 在我的网站上下订单. 担心的是我不知道如何使用预定义的电子邮件地址创建 PayPal 付款按钮,因此客户可以很好地验证虚假电子邮件地址,然后使用被黑帐户付款。
有任何想法吗?
解决方案
您不能强迫他们使用某个 PayPal 帐户/电子邮件地址登录并批准付款。但是,使用服务器端集成,您可以在捕获付款之前检查他们的信息。 这是服务器端集成的骨架演示。
使用这种设计,在买家批准付款后,fetch(
将触发到您服务器的 XHR,通常这是您只需从服务器向 PayPal 发出v2/订单捕获请求。
但是根据您的问题要求,在此之前,您可以先获取有关批准者的信息,并验证他们的电子邮件是否与您要从中接收付款的电子邮件相对应。我没有专门测试过这个场景,但我的理解是,在这个阶段调用“显示订单详细信息”会返回 a "status": "APPROVED"
,并在 JSON 正文的其余部分中包含有关批准者的信息。
如果电子邮件与您想要接收付款的电子邮件不匹配,那么您将丢弃订单(不进行任何捕获),并向客户显示一条消息,即他们必须从您之前在结帐流程中验证的电子邮件中购买.
附带说明一下,如果某人对 PayPal 帐户具有完全访问权限,他们始终可以在 www.paypal.com 中向该帐户添加新电子邮件,并使用他们完全控制的新电子邮件从您的网站结帐。因此,我不确定这在安全性方面是否真的对您有所帮助,但它确实为您的客户(合法客户和欺诈者)提供了额外的验证圈,可以跳过以完成结帐。
推荐阅读
- python - 在 Pandas Dataframe 中合并/合并时如何保留列名
- django - Django:两个模型之间的两种关系
- python - 用于短唯一内容 ID 的散列算法
- java - 将 Spring boot Angular 应用程序部署到 Tomcat 服务器
- mysql - mysql.connect 永远不会返回
- node.js - 如何使用 http POST 方法将当前用户(使用应用程序的人)、Firebase Id 令牌从 Flutter 应用程序发送到 restapi?
- mysql - 如何有效地查询 MySQL 中特定日期范围之间的行?
- reactjs - 反应管理员!如果收到 API 错误,则应重定向到登录页面
- spring - Spring Eureka 拒绝来自尝试发现 Spring Config 服务器的服务的连接
- azure-data-explorer - 在 kusto 中格式化结果