如何使用react-paypal-js修改PayPal订阅的金额?
如何修改PayPal订阅的金额(基于@paypal/react-paypal-js)
有两种方式可以调整订阅金额,根据你的需求选择:
一、给单次订阅动态调整金额(不修改原有计划)
如果只是想给当前用户的订阅设置自定义金额(比如临时优惠、额外收费),可以在创建订阅时添加override_amount参数覆盖计划默认金额。
注意
你的PayPal订阅计划必须允许金额覆盖——在PayPal商家后台创建/编辑计划时,要开启「允许修改金额」的选项,否则调用API会报错。
修改后的代码示例
import { useEffect } from "react"; import { PayPalScriptProvider, PayPalButtons, usePayPalScriptReducer } from "@paypal/react-paypal-js"; const ButtonWrapper = ({ type, customAmount }) => { const [{ options }, dispatch] = usePayPalScriptReducer(); useEffect(() => { dispatch({ type: "resetOptions", value: { ...options, intent: "subscription", }, }); }, [type]); return (<PayPalButtons createSubscription={(data, actions) => { return actions.subscription .create({ plan_id: "P-3RX065706M3469222L5IFM4I", // 添加金额覆盖配置 override_amount: { currency_code: "USD", // 要和你的计划货币一致 value: customAmount // 自定义的订阅金额 } }) .then((orderId) => { // 订阅创建后的逻辑 return orderId; }); }} style={{ label: "subscribe", }} />); } export default function App() { return ( <PayPalScriptProvider options={{ "client-id": "test", components: "buttons", intent: "subscription", vault: true, }} > <ButtonWrapper type="subscription" customAmount="12.99" /> {/* 传入你想要的金额 */} </PayPalScriptProvider> ); }
二、修改订阅计划本身的金额(影响所有新订阅)
如果要让所有后续创建的订阅都使用新金额,直接登录PayPal商家后台,找到对应的计划(ID为P-3RX065706M3469222L5IFM4I),修改其金额即可。
注意
- 修改计划后,已存在的旧订阅金额不会改变,只有新创建的订阅会使用新金额。
- 如果你的计划不允许金额覆盖,只能通过这种方式调整新订阅的金额。
内容的提问来源于stack exchange,提问作者Artem Kosharnyi
相关产品推荐
相关产品推荐

