PHP集成PayPal应使用哪类API及对应接入凭证?
PayPal接入凭证选型说明
直接给结论:新做PHP对接优先用client_id + secret,这是当前官方指定的规范方案,账户面板里的api username/password/signature是遗留体系的凭证,只适用于存量老场景。
两类凭证的对应体系
client_id+secret
对应PayPal现在主推的REST API体系(包括你参考的v2版本接口),走OAuth2.0鉴权逻辑,服务端先调用鉴权接口拿到有效期内的access_token,就能调用创建订单、查询支付状态、退款、订阅、Webhook验签等所有当前开放的业务能力,所有新上线的功能、安全更新都只在这套API体系里迭代,新接入项目直接选这组凭证就对了。
PHP环境下拿access_token的最简实现参考:// 沙箱环境鉴权地址,正式环境替换为https://api-m.paypal.com/v1/oauth2/token $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://api-m.sandbox.paypal.com/v1/oauth2/token'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, 'grant_type=client_credentials'); curl_setopt($ch, CURLOPT_USERPWD, "{$clientId}:{$clientSecret}"); $response = json_decode(curl_exec($ch), true); $accessToken = $response['access_token'];- api username + api password + signature
对应PayPal早年间的NVP/SOAP经典API体系,属于已经停止功能迭代的遗留方案,官方现在只做基础的兼容性维护,不会给这套接口加新能力。
经典三字段凭证的适用场景
这组凭证现在只有两种情况下需要用:
- 你自己的站点早年已经基于经典API开发完了支付相关逻辑,暂时没有重构迁移的排期,可以继续用这组凭证维持老业务运行
- 对接多年未更新的老旧第三方电商系统、建站插件,这类系统还没做REST API适配,配置支付参数的时候只能填这三个经典凭证字段
额外提醒:两套凭证完全不互通,经典三字段凭证调不通REST v2的任何接口,不要尝试混用来回排查浪费时间。如果是从零开发新的支付对接,直接走REST v2流程用client_id和secret即可,不需要去申请那组经典凭证。
内容的提问来源于stack exchange,提问作者xeninweb
相关产品推荐
相关产品推荐

