PAYPAL IPN开发小结_ps4paypal发生错误

2020-02-27 其他工作总结 下载本文

PAYPAL IPN开发小结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“ps4paypal发生错误”。

PayPal支付接口IPN开发小结

1.IPN简介及其工作方式

PayPal IPN(Instant Payment Notification),就是Paypal开发的一种能主动通知第三方卖家系统交易状态的一种机制。IPN的原理很简单,就是当产生了一个交易之后,交易状态发生变化时,如用户已经付款、或者退款、撤销时,Paypal利用常用的HTTP POST方式,将交易的一些变量提交给网站的某个页面(称之为IPN Handler),当这个页面接受到请求时候,将这些数据原封不动加上一个指示验证的cmd=_notify-validate,POST回Paypal的接口地址,如果数据正确,那么Paypal返回字符串VERIFIED,否则为INVALID,如果结果为VERIFIED,那么你的程序就可以使用这些数据进行操作。

另外,IPN只针对PayPal的Busine用户开放。

2.SANDBOX使用介绍

Paypal专门开发了Sandbox给开发人员进行开发,首先到https://developer.paypal.com/ 注册一个开发帐号,好了之后再进入Sandbox建立测试用的Paypal虚拟帐号(至少应该建立一个Busine的和一个Personal的),这种账号注册方法和Paypal的流程一样,信息可以是假的,包括银行帐号、信用卡(其实Paypal Sandbox会自动生成一些随机的号码)。接下来需要激活Paypal Sandbox的虚拟帐号,注意,这里不管你在Paypal Sanbox注册时填什么邮件地址,有任何发送到虚拟帐号所填邮箱的邮件都存会在开发帐号的管理界面中的Email页(导航栏上有)中。登录Sandbox的虚拟Paypal环境,还需要验证虚拟帐号的银行,这里可以随便填,然后通过Add Funds来给账户充值(想填多少填多少)。然后,还需要激活IPN的选项,在Busine的那个账户的Profile设置页面中,点击,然后点击Edit按钮,打开IPN,这里如果你使用的是固定的IPN Handle,可以直接将地址填入。

测试案例:

登录Busine帐户,在Merchant Service中点击Buy Now Buttons生成一个PAY按钮的HTML代码; 在My Account中点击Profile,然后点击Instant Payment Notification Preferences设置IPN Handel;在Website Payment Preferences中可以设置PAY完成之后返回的页面;

在一个页面中嵌入PAY按钮代码,点击支付后IPN Handel就会收到PayPal POST过来的数据;

3.IPN Handel IPN Handel只需接收POST来的参数就可以了,下面列举一些重要的参数:

payment_status:显示交易的状态,有Completed, Pending, Failed等几种状态,一般买家通过PAY按钮付款之后处于Pending状态,确认付款之后处于Completed状态,放弃付款处于Failed状态

item_name:货物的名称 item_number:货物的编号 mc_gro:支付的金额

可以在http://paypaltech.com中找到IPN Handel的示例代码 下面截取一个IPN Handel的代码参考

<%@LANGUAGE=“VBScript”%> <% ' dim some variables Dim Item_name, Item_number, Payment_status, Payment_amount Dim Txn_id, Receiver_email, Payer_email Dim objHttp, str

'begin IPN handling ' read post from PayPal system and add 'cmd' str = Request.Form & “&cmd=_notify-validate” ' post back to PayPal system to validate set objHttp = Server.CreateObject(“Msxml2.ServerXMLHTTP”)' set objHttp = Server.CreateObject(“Msxml2.ServerXMLHTTP.4.0”)' set objHttp = Server.CreateObject(“Microsoft.XMLHTTP”)objHttp.open “POST”, “https://www.daodoc.com/cgi-bin/webscr”, false objHttp.setRequestHeader “Content-type”, “application/x-www.daodoc.completed”)then pay_status=1 ' completed else if(trim(payment_status)=“Pending”)then pay_status=0 ' pending else if(trim(payment_status=“Failed”))then pay_status=2 'failed else

pay_status=-1 ' unknown status end if end if end if

' order id order_id=trim(payment_date)response.Write(mc_gro&“fsafaffas”)money=CDbl(mc_gro)

'get account information set rsAccount = server.CreateObject(“ADODB.Recordset”)

sql = “select * from cleanpick_account where login_id = ” & login_id rsAccount.Open sql, objConn, 3, 1 if rsAccount.EOF then Pbalance = 0 'delete redundance objConn.execute(“delete from cleanpick_account where login_id=”&login_id)

'if we can not find the account information from database create one 'Default account's balance is 0 dollor sql=“insert into cleanpick_account(login_id, balance, description, searches, deals)values”_

& “(”&login_id&“,0,'New User', 0, 0)”

objConn.execute(sql)else Pbalance = rsAccount(“balance”)end if rsAccount.close()

if(pay_status=1)then Pbalance2 = Pbalance+money else Pbalance2 = Pbalance end if

if(pay_status-1)then 'delete redundancy sql=“DELETE FROM cleanpick_deposithistory where login_id=” & login_id & _

“ and deposit_money=” & money & “ and order_id='” & order_id & “'” objConn.execute(sql)

sql=“insert into cleanpick_deposithistory ”_

&“(deal, login_id, deposit_money, balance_before, ”_

&“balance_after, deposit_type, deposit_description, pay_status, order_id)values”_

&“(0,”&login_id&“,”&money&“,”&Pbalance& “,” _

&Pbalance2&“,1,'Store Money by PayPal',”&pay_status&“,'”&order_id&“')” objConn.execute(sql)

'update account information sql=“update cleanpick_account set balance=” & Pbalance2 & “ where login_id=” & login_id objConn.execute(sql)end if

'End Disposalink handling here

####

elseif(objHttp.responseText = “INVALID”)then ' log for manual investigation ' add code to handle the INVALID scenario response.Write(“INVALID handle”)else ' error end if set objHttp = nothing %>

hr开发小结

HR信息类型增强信息类型是SAP HR模块数据单元,用于对人员数据的记录和维护,是HR的基础。信息类型按照其创建方式的不同可以分为:人事信息类型、组织信息类型。信息类型数据的维......

Android蓝牙开发小结

学习之前先了解两个基本概念:一、RFCOMM协议: 一个基于欧洲电信标准协会ETSI07.10规程的串行线性仿真协议。此协议提供RS232控制和状态信号,如基带上的损坏,CTS以及数据信号等,......

wireshark插件开发小结

wireshark插件开发小结关键字:wireshark, plugin, lua,protocol 概述wireshark是非常流行的网络封包分析软件,功能十分强大。可以抓取各种网络包,并显示网络包的详细信息。为......

校本课程开发阶段小结

积极开发校本课程大力推进课改实验——屈原镇校本课程开发与实施阶段性小结理性思考教育部在《基础教育课程改革纲要》中明确指出,学校在执行国家课程和地方课程的同时,应视社......

异地跨团队开发小结

异地跨团队开发小结对开发中遇到的问题进行小结: 1计划很重要包括项目完整流程的计划,各阶段各方面各部门各环境的计划与协调。计划时有留下余地时间,计划制定要从粗到细,具体分......

《PAYPAL IPN开发小结.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
PAYPAL IPN开发小结
点击下载文档
相关专题 ps4paypal发生错误 小结 PAYPAL IPN ps4paypal发生错误 小结 PAYPAL IPN
[其他工作总结]相关推荐
[其他工作总结]热门文章
下载全文