在 PayPal API 付款中包​​含 message/note 字段

Include a message/note field in a PayPal API payment

我正在构建一个非常简单的付款表单,用户可以在其中输入金额和感谢信息。我已经成功地使用了数量,但我无法添加消息字段并让它通过!

这里只是我的支付功能JavaScript:

payment: function(data, actions) {
    return actions.payment.create({
        payment: {
            transactions: [
                {
                    amount: { 
                        total: window.transactionAmount, 
                        currency: 'GBP' 
                    },
                    note_to_payee: document.getElementById('custom-message').value,
                    description: 'A gift to Martin.',
                    custom: 'This is a test custom field',
                    payee: {
                        "email": "martin@[hidden].com"
                    }
                }
            ]
        },
        experience: {
            input_fields: {
                no_shipping: 1,
                allow_note: true
            }
        }
    });
},

我已尝试设置 customnote_to_payee,但似乎都没有记录在通知电子邮件或收件人帐户中记录的数据中。

我也曾尝试通过在体验配置中设置 allow_note: true 来启用付款人添加备注的功能,但这没有任何作用!

请帮忙,我只需要通过任何方式通过付款传递一条小消息。

PayPal 支持团队花了 4 天的时间才回复说不,无法完成。

这是他们的完整回复:

With regard to your request, I have to inform you that "note to seller" (allow_note:true) field is only available in the older PayPal payment experience, and is not available in the newer payment experience.

Unfortunately, there's nothing the caller can do at this time to force an old or new experience and we recommend to collect this information in your website where possible.

看来他们已经放弃了 PayPal 结账功能中最好和最简单的功能之一,即能够包含一个友好的小便条。

现在,我唯一的选择是构建一个带有 API 个端点的整个后端系统,并扩展我的 JavaScript 只是为了记录我的付款人的笔记。与此同时,我收到的每封电子邮件通知都将继续包含那个令人讨厌的谎言:"The buyer hasn't entered any instructions"

PayPal:请在您的新流程中实施一项功能或 remove/hide 该功能!不要半途而废。你拿走我所有交易的 10%,我希望更好。

解决此问题的方法是使用“选项变量”在您的结帐流程中创建一个文本框。选项变量的一个例子是“os0”和“on0”。

以下是我们网站上的一个示例,说明您将如何实施:https://www.paypal.com/us/cgi-bin/webscr?cmd=_pdn_xclick_options_help_outside

https://developer.paypal.com/sdk/js/reference/#onapprove

paypal.Buttons({
  createOrder: function(data, actions) {
    ...
  },
  onApprove: function(data, actions) {
    // This function captures the funds from the transaction.
    return actions.order.capture().then(function(details) {
      // This function shows a transaction success message to your buyer 
      alert('Transaction ' + transaction.status + transaction.id);                          
     window.location.href = 'https://www.yoursite.com/page.php?trnsid='+ transaction.id;
    });
  }
}).render('#paypal-button-container');

您可以在 Approve 上进行重定向。

如果交易完成,将用户重定向到一个页面,其中包含 GET/capture 交易 ID(将消息与交易相关联)并添加消息文本区域,以便用户可以在付款后发送一些注释。