You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

PayPal Payflow集成请求遇用户认证失败问题求助

排查PayPal Payflow用户认证失败(RESULT=1)的常见方向

我之前集成Payflow Hosted Pages时也踩过这个认证失败的坑,结合你的情况给你几个具体排查点:

  • 区分API密码和登录密码:Payflow的PWD参数需要用的是PayPal Manager里设置的API访问密码,不是你登录PayPal Manager的账号密码。如果还没设置过,要登录PayPal Manager,在「Account Administration」>「Change Password」里专门设置API密码(注意和登录密码分开)。
  • 确认沙箱/生产环境匹配:你请求的是沙箱环境(pilot-payflowpro.paypal.com),必须确保使用的VENDORUSERPWD都是沙箱环境的凭据,不能用生产环境的账号信息,两者完全独立。
  • 检查SECURETOKENID的唯一性:这个ID要求每次请求都是唯一值,避免重复使用同一个ID导致的异常。建议换成随机生成的字符串(比如用Python的uuid.uuid4().hex生成)再测试。
  • 验证PARTNER参数正确性:虽然你填的PayPal是默认值,但如果你的商户账户是通过其他合作伙伴接入的,需要替换成对应的Partner ID。如果是直接在PayPal开通的,这个参数没问题。
  • 排查请求头冲突:你代码里用到了headers但没给出具体内容,Payflow要求请求的Content-Typeapplication/x-www-form-urlencoded,如果headers里设置了其他类型(比如application/json),会导致参数解析失败,进而触发认证错误。可以尝试去掉自定义headers,或者明确设置正确的Content-Type。
  • 检查用户权限:即使是管理员账号,也要确认在PayPal Manager里给该用户开启了Payflow API访问权限Hosted Pages相关权限。进入「Account Administration」>「Manage Users」,找到对应的用户,查看权限设置是否齐全。

另外,你可以先简化代码测试,排除其他干扰:

import urllib
import requests

data = [
    ('PARTNER', 'PayPal'),
    ('VENDOR', 'your-vendor-id'),
    ('USER', 'your-user-id'),
    ('PWD', 'your-api-password'),
    ('TRXTYPE', 'S'),
    ('AMT', '40'),
    ('CREATESECURETOKEN', 'Y'),
    ('SECURETOKENID', 'unique-random-id-here'),
]
data = urllib.urlencode(data)
response = requests.post('https://pilot-payflowpro.paypal.com', data=data, verify=False)
print(response.text)

内容的提问来源于stack exchange,提问作者Biplov

火山引擎 最新活动