贝宝
获取你的 PayPal 凭证
要与 PayPal 集成,你需要通过在 PayPal 开发者门户 创建应用来获取 API 凭证。
按以下步骤操作:
- 在 PayPal 开发者门户创建一个账户
- 创建一个新应用,官方文档
- 在“其他功能”下配置使用 PayPal 登录
- 设置你的返回网址(重定向网址)
- 配置用户信息权限
- 请记下你的客户端 ID 和客户端密钥
- PayPal 有两个环境:沙箱(用于测试)和正式(用于生产)
- 用于测试,请在开发者控制台的“沙箱” → “账户”下创建沙箱测试账户
- 你不能使用真实的 PayPal 账户在沙箱模式下进行测试——你必须使用生成的测试账户
- 你PayPal应用设置中的返回URL必须完全匹配你的重定向URI
- PayPal API 无法在本地主机上使用。你需要为重定向 URL 使用公共域名,并在本地测试时使用 HTTPS。你可以使用 NGROK 或其他类似工具来实现此功能。
确保在你的应用设置中配置“使用 PayPal 登录”:
- 前往开发者控制台中的应用
- 在“其他功能”下,勾选“使用 PayPal 登录”
- 点击“高级设置”
- 输入你的返回网址
- 选择你想要访问的用户信息(电子邮件、名称等)
- 请输入隐私政策和用户协议的链接
- PayPal 在授权 URL 中不使用传统的 OAuth2 范围。相反,你可以直接在开发者控制台中配置权限
- 对于实时应用,PayPal 必须在应用上线前进行审核和批准,这通常需要几周时间
配置提供程序
要配置提供程序,你需要导入该提供程序并将其传递给身份验证实例的 socialProviders 选项。
import { betterAuth } from "better-auth"
export const auth = betterAuth({
socialProviders: {
paypal: {
clientId: process.env.PAYPAL_CLIENT_ID as string,
clientSecret: process.env.PAYPAL_CLIENT_SECRET as string,
environment: "sandbox", // or "live" for production //,
},
},
})Options
The PayPal provider accepts the following options:
environment:'sandbox' | 'live'- 要使用的 PayPal 环境(默认:'sandbox')requestShippingAddress:boolean- 是否请求送货地址信息(默认值:false)
export const auth = betterAuth({
socialProviders: {
paypal: {
clientId: process.env.PAYPAL_CLIENT_ID as string,
clientSecret: process.env.PAYPAL_CLIENT_SECRET as string,
environment: "live", // Use "live" for production
requestShippingAddress: true, // Request address info
},
},
})Sign In with PayPal
To sign in with PayPal, you can use the signIn.social function provided by the client. The signIn function takes an object with the following properties:
provider:要使用的提供者。应设置为paypal。
import { createAuthClient } from "better-auth/client"
const authClient = createAuthClient()
const signIn = async () => {
const data = await authClient.signIn.social({
provider: "paypal"
})
}Additional Options:
environment:要使用的 PayPal 环境。- 默认:
"sandbox" - 选项:
"sandbox"|"live"
- 默认:
requestShippingAddress:是否需要请求收货地址信息。- 默认:
false
- 默认:
scope:请求的附加权限范围(与默认权限组合使用)。- 默认:在 PayPal 开发者控制台中配置
- 注意:PayPal 不使用传统的 OAuth2 范围——权限是在仪表板中设置的。如需更多详情,请参阅 范围参考
mapProfileToUser:将 PayPal 配置文件数据映射到用户对象的自定义函数。getUserInfo:用于获取用户信息的自定义函数。更多详情请参阅 用户参考verifyIdToken:自定义 ID 令牌验证函数。