paypal支付交易成功後返回的物件中就有交易資訊(包括支付交易id,支付金額,支付人資訊,收款人資訊等),同時如果你開啟了訊息通知paypal會同時給你推送一條差不多內容的交易資訊。
支付成功返回資料:
我們在調paypal支付介面(execute)介面支付成功或者失敗paypal返回的資料。
id:為本次的資料id,唯一。
payer:付款人的資訊。
transations:支付交易資訊。
transations.amount:支付金額資訊,總價,稅費,運費等。
transations.item_list:商品資訊。
transations.shipping_address:收貨位址資訊。
transations.related_resources:裡面就是收款人的資訊。
transations.related_resources.state:這個狀態就是收款人的交易狀態,只要是completed就表示我們收到了錢,錢到賬了就什麼都好說了,交易成功。
}},
"transactions": [
},"description": "payment description",
"item_list": ,
],"shipping_address":
},"related_resources": [
,"payment_mode": "instant_transfer",
"state": "completed",
"protection_eligibility": "eligible",
"protection_eligibility_type": "item_not_received_eligible,unauthorized_payment_eligible",
"parent_payment": "pay-1bv5911839643144ykscua7q",
"links": [,,
]}}]
}],
"links": [
]}
同時伺服器會收到ipn訊息, 類似:
支付成功後paypal會同時往我們賣家賬號那裡配置的訊息通知url推送一條訊息資料,資料和支付成功大致一樣。
由於paypal推送訊息不止一次,正常情況下如果是 completed並且使用者收到資訊就不會再推了,如果推送失敗或者交易狀態發生改變,比如出現資金凍結,發起退款等事情的時候,paypal的就會有多次推送了,那麼我們要怎樣判斷是第一次推送還是多次推送呢?
檢視資料我們發現資料中有交易號txn_id,如果出現多次推送就會多出乙個屬性parent_txn_id,這個就是原始交易id,所以我們可以判斷有沒有這個屬性,這個屬性有沒有值來確定是第一次還是第二次推送。
array (
'act' => 'ipn',
'mc_gross' => '20.00',
'invoice' => '548531d624f59',
'protection_eligibility' => 'eligible',
'address_status' => 'unconfirmed',
'item_number1' => '',
'tax' => '1.30',
'item_number2' => '',
'payer_id' => 'jaryjk2tes6c6',
'address_street' => 'no 1 nan jin road',
'payment_date' => '21:04:35 dec 07, 2014 pst',
'payment_status' => 'completed',
'charset' => 'gb2312',
'address_zip' => '200000',
'mc_shipping' => '1.20',
'mc_handling' => '0.00',
'first_name' => 'test',
'mc_fee' => '0.98',
'address_country_code' => 'cn',
'address_name' => 'buyer test',
'notify_version' => '3.8',
'custom' => '',
'payer_status' => 'unverified',
'address_country' => 'china',
'num_cart_items' => '2',
'mc_handling1' => '0.00',
'mc_handling2' => '0.00',
'address_city' => 'shanghai',
'verify_sign' => 'aomrs5l2w2xlt2an.gasrazpcl-nacivh3pz0htrsbzzfcieqdpgrxsk',
'payer_email' => '[email protected]',
'mc_shipping1' => '0.00',
'mc_shipping2' => '0.00',
'tax1' => '0.00',
'tax2' => '0.00',
'txn_id' => '5cs19517sj894934r',
'payment_type' => 'instant',
'last_name' => 'buyer',
'address_state' => 'shanghai',
'item_name1' => 'ground coffee 40 oz',
'receiver_email' => '[email protected]',
'item_name2' => 'granola bars',
'payment_fee' => '0.98',
'quantity1' => '1',
'quantity2' => '5',
'receiver_id' => '937cp9psmds2a',
'txn_type' => 'cart',
'mc_gross_1' => '7.50',
'mc_currency' => 'usd',
'mc_gross_2' => '10.00',
'residence_country' => 'cn',
'test_ipn' => '1',
'transaction_subject' => '',
'payment_gross' => '20.00',
'ipn_track_id' => 'a9059421a1dd7',
)
支付之paypal支付
1.基本配置 1.1.設定sandbox 賬號,開啟登入 1.2 賬號設定買家和賣家,各設定乙個。賣家的郵箱位址放在下面的form表單裡的business 裡面,買家 測試支付的時候使用 1.3.配置paypal表單 1.form的action 為 是 沙箱配置,上線去掉sandbox即可2.如果配...
聊聊電商平台的支付交易系統
一 關於定位 下單 支付渠道閘道器 訂單管理 虛擬資金賬戶 營銷優惠等重要業務,是電商平台不可或缺的系統。在不同的業務發展階段,支付交易系統需要的架構和投入的人力也不大一樣。二 架構演進 1.初期 單核階段 在平台發展初期,業務相對比較簡單,業務量也很小,乙個系統就囊括了所有功能,很可能連部署都和其...
設定Paypal支付
paypal支付設定有很多種,這裡我們設定標準的paypal支付方式 website payments standard.假設你已經有了乙個paypal的賬號,比如為yummy gmail.com。步驟i.設定paypal賬號 進入system configuration paypal accoun...