Paypal如何将自定义变量传递到订阅按钮?

4

我正在尝试弄清楚如何在申请我创建的Web服务的订阅时传递自定义变量; 到目前为止,我的前端代码看起来像这样:

const createSubscription = (data, actions) => {
    return actions.subscription.create({
        'plan_id': 'P-XXXXXXXXXXX',
        "custom": "This is data from custom field",
        "custom_id": "This is data from custom_id field"
    });
};

但是当我的客户端被批准后,IPN会向我的后端服务器发送通知,但是根本没有任何custom_idcustom字段:
{
  mc_gross: '100.00',
  outstanding_balance: '0.00',
  period_type: ' Regular',
  next_payment_date: '03:00:00 Mar 17, 2021 PDT',
  protection_eligibility: 'Eligible',
  payment_cycle: 'Monthly',
  address_status: 'confirmed',
  tax: '0.00',
  payer_id: 'HXRWYDXHYFZN8',
  address_street: '1 Main St',
  payment_date: '10:45:14 Feb 17, 2021 PST',
  payment_status: 'Completed',
  product_name: 'Monthly Plan',
  charset: 'UTF-8',
  recurring_payment_id: 'I-F2C2YTJU2E1U',
  address_zip: '95131',
  first_name: 'John',
  mc_fee: '3.20',
  address_country_code: 'US',
  address_name: 'John Doe',
  notify_version: '3.9',
  amount_per_cycle: '100.00',
  payer_status: 'verified',
  currency_code: 'USD',
  business: 'sb-w7647v5112246@business.example.com',
  address_country: 'United States',
  address_city: 'San Jose',
  verify_sign: 'AwvhmU0vP2FlU28Jc6pBhDPQLGvKAuK1SbOO3rAWZruMDt8v8SJ',
  payer_email: 'sb-oettb5109886@personal.example.com',
  initial_payment_amount: '0.00',
  profile_status: 'Active',
  amount: '100.00',
  txn_id: '7M8958705N109551P',
  payment_type: 'instant',
  last_name: 'Doe',
  address_state: 'CA',
  receiver_email: 'sb-w7647v5112246@business.example.com',
  payment_fee: '3.20',
  receiver_id: '5CCP2BYDNEBQE',
  txn_type: 'recurring_payment',
  mc_currency: 'USD',
  residence_country: 'US',
  test_ipn: '1',
  transaction_subject: 'Monthly Plan',
  payment_gross: '100.00',
  shipping: '0.00',
  product_type: '1',
  time_created: '10:44:22 Feb 17, 2021 PST',
  ipn_track_id: 'bee6f9133b8f'
}

有没有办法传递一些额外信息,以便我可以在后端更新记录?

PS. 请注意,这是createSubscription而不是createOrder或类似的操作。

1个回答

1
  1. custom_id正确的值

  2. 有可能你只会在 Webhook 事件通知 中收到它,而不是 IPN(这是一个非常旧的服务,不适用于当前的 API)

  3. 最好的解决方案是从你的服务器创建并激活订阅。这里的答案 和其他链接的答案中有一些信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接