【问题标题】:Create a PayPal invoice, mark paid and send email创建 PayPal 发票,标记已付款并发送电子邮件
【发布时间】:2015-02-03 13:38:19
【问题描述】:

使用 PayPal API,我想在买家在网络应用程序中完成购买后立即通过电子邮件发送标记为已付款的发票。

有可能吗?

如果不使用 API,您将无法为已付款 发票手动发送电子邮件通知。对吗?

【问题讨论】:

  • 我有点困惑。为什么不为他们生成一个典型的电子邮件收据并在他们完成销售时发送?您想创建一个新发票,然后将其标记为已付款..??那将是一个完全独立的“交易”。
  • 问题是,我的主管希望通过 PayPal 发票部分查看、打印和管理发票。

标签: paypal invoice


【解决方案1】:

在您的结帐系统中,当订单通过时,调用CreateInvoice API。这将在 PayPal 系统中生成发票。您可以在 CreateInvoice 请求中使用“数字”参数来传递您的常规订单 ID(如果您有一个),以便发票与您的结帐订单密切相关。

然后,在那次通话之后,立即拨打MarkInvoiceAsPaid。这将在 PayPal 系统中将发票标记为已付款,以便您在那里有一个很好的记录。

听起来像你所追求的,对吧?

如果您碰巧在使用 PHP,我的 class library for PayPal 将使您的所有发票 API 调用变得非常简单。

【讨论】:

  • 起初我认为这会很好,但我正在使用 REST API 并实际尝试过。 MarkInvoiceAsPaid() 的等价物是 REST API 中的 recordPayment(),您不能在创建发票后将其标记为已付款,而不发送它。它会给您以下错误:“无法支付草稿实体。”
【解决方案2】:

你需要做三件事:

  • CreateInvoice

  • SendInvoice(然后客户通过电子邮件收到发票,但仍按“立即付款”)。

  • 当他直接付钱给你时,你发送MarkInvoiceAsPaid。这将删除“立即付款”并添加消息,说明发票在给定日期标记为已付款。

【讨论】:

    【解决方案3】:

    您需要在此处进行 3 次 API 调用:

    1. Create发票
    2. Send发票
    3. Record付款

    当您创建发票时,它是在 DRAFT 状态下创建的,它实际上不是合法的发票。因此,当商家发送此发票时,发票的状态将变为 SENT 状态,并变为合法。要将其标记为已付款,您需要调用记录付款 API,并在请求正文中将付款方式传递为 CASH、CREDIT_CARD、DEBIT_CARD、PAYPAL、WIRE_TRANSFER 或 OTHER。 PayPal 开发者网站上的 API 文档非常有用。我希望这能回答你的问题。

    【讨论】:

    • 如果您发送发票(针对已付款的商品),买家将收到一封电子邮件,其中包含支付发票的按钮。我想如果不发送电子邮件就不可能进行此 API 调用。因为无论如何这就是此方法的目的,发送发票。所以你的建议会让买家感到困惑。
    • 买家将收到一封带有“在这里付款”按钮的电子邮件。糟糕的用户体验。非常混乱。
    • 嗨 Gianluca/Serdar 是的!我同意这是一种糟糕的用户体验。但是,这是上述查询的唯一方法。至少在我回答问题之前。当发票被标记为已付款时,用户也会收到电子邮件。而且,当用户尝试点击支付按钮时,他会收到一条错误消息,指出金额已支付。
    猜你喜欢
    • 2019-08-24
    • 2014-01-26
    • 2018-02-09
    • 1970-01-01
    • 2012-04-22
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    相关资源
    最近更新 更多