Idle Works, Idle Thoughts

PayPal API 学习笔记

作为国际交易的主流支付方式,我们有必要在网站中集成PayPal支付。

付款反馈:PDT和IPN

PayPal提供2种主要的付款反馈机制:PDT和IPN。PDT是Payment Data Transaction的缩写,当客户付款后,PayPal会立即返回这笔付款的状态,但仅返回此状态一次,好处是你立即能收到付款状态,并对客户付款做出响应;坏处是,如果出现网络故障,如客户没有跳转回你的网站,那么你就丢失了这次付款信息。IPN是Payment Instant Notification的缩写,它不是实时反馈付款状态,而是后延后通知,但好处是,它会通知你多达16次付款状态,直到你响应为止。

变量

IPN交易类型

我们常见的类型:

web_accept - 收到客户付款。通常是通过Buy Now、Donation等按钮付款。

send_money - 客户通过PayPal页面的Send Money付款。

买家信息

付款信息

常见的Payment信息:

payment_type - 付款类型。有2种:

mc_currency - 货币种类。

mc_fee - 交易手续费。mc_grossmc_fee就是最终receiver_email所能得到的净值。如果是以美元支付,那么mc_fee等同于payment_fee。如果这个值是负数,表示退款或撤销(reversal),它等同于原始交易手续费的全部或部分。

mc_gross - 客户付款的金额。要减掉mc_fee才是收款人最终能得到的金额。如果以美元支付,那么mc_gross等同于payment_gross

memo - 客户付款留言。限255个字符。

payer_status - 客户账号状态。其值为verifiedunverified

payment_fee - 美元支付的金额。这个字段已不建议使用,用mc_fee取代之。

payment_status - 付款状态。有以下状态:

争议事件

case_id - 事件编号。

case_type - 事件类型。有以下争议事件:

reason_code - 争议原因。

1. 针对complain:

2. 针对dispute:

IPN 开发

参考: