Paypal IPN
網(wǎng)上已經(jīng)有很多paypay ipn的文章了,只不過(guò)他們都是用paypal的購(gòu)物車。因?yàn)槲抑皇怯脕?lái)作為一個(gè)付款渠道,因此,我得先生成訂單,然后引導(dǎo)客戶去paypal付款。
1.轉(zhuǎn)去付款頁(yè)面
代碼????<form?id="payForm"?method="post"?action="<%Response.Write(URL);%>">????????<input?type="hidden"?name="cmd"?value="<%Response.Write(cmd);%>"?/>
????????<input?type="hidden"?name="business"?value="<%Response.Write(business);%>"?/>
????????<input?type="hidden"?name="item_name"?value="<%Response.Write(item_name);%>"?/>?
????????<input?type="hidden"?name="amount"?value="<%Response.Write(amount);%>"?/>
????????<input?type="hidden"?name="no_shipping"?value="<%Response.Write(no_shipping);%>"?/>
????????<input?type="hidden"?name="return"?value="<%Response.Write(return_url);%>"?/>
????????<input?type="hidden"?name="rm"?value="<%Response.Write(rm);%>"?/>
????????<input?type="hidden"?name="notify_url"?value="<%Response.Write(notify_url);%>"?/>
????????<input?type="hidden"?name="cancel_return"?value="<%Response.Write(cancel_url);%>"?/>
????????<input?type="hidden"?name="currency_code"?value="<%Response.Write(currency_code);%>"?/>
????????<input?type="hidden"?name="custom"?value="<%Response.Write(request_id);%>"?/>
????</form>
????<script??type="text/javascript"?language="javascript">
????document.forms["payForm"].submit();
????</script>
url 就是付款的網(wǎng)址
notify_url用于paypal更新?tīng)顟B(tài)的網(wǎng)址,最好使用https,當(dāng)然了http也行
return 用于返回的網(wǎng)址,個(gè)人覺(jué)得沒(méi)啥太大用處,還不如指回到訂單頁(yè)面
custom用于傳遞特殊的值,paypal回調(diào)notify_url的時(shí)候會(huì)傳遞,可以驗(yàn)證請(qǐng)求有效性,是隱藏傳遞的。
?
2.付款確認(rèn)的頁(yè)面
?將參數(shù)加上"&cmd=_notify-validate"回傳回付款網(wǎng)址
如果response的值是VERIFIED的時(shí)候,表示請(qǐng)求是從paypal出來(lái)的
然后用他的request里面的變量判斷數(shù)據(jù)是否正確,比如金額,產(chǎn)品價(jià)格、收款人等等
如果這些都對(duì)的話,那么就放心的更新訂單的付款狀態(tài)了。
3.paypal只有在確認(rèn)付款后, payment_status才會(huì)等于Completed
?
轉(zhuǎn)載于:https://www.cnblogs.com/wildfish/archive/2010/06/02/1750014.html
總結(jié)
以上是生活随笔為你收集整理的Paypal IPN的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 一个工具箱工具
- 下一篇: NHibernateLinq简单的CRU