PAYPAL支付的提交和吸收都分为2种办法!
这是网上很多人的博客资料都没有比较细致解释的。当初我在上面掉了一个大坑,苦不堪言。(公司哀求是利用邮箱收款的办法,我自己不清楚看了帖子利用了APP的办法,即:和淘宝的一样,利用appkey、apptoken的办法)申请这个比较麻烦,须要填写很多的资料,而且审批也须要周期良久,以是直策应用邮箱收款的办法。
作甚邮箱收款办法,PAYPAL上面可以直接注册个帐号,这个帐号就可以用来收钱。任何人,只要你的帐号上有钱,或者利用信用卡都可以在上面打钱。实在,说了这么多废话,便是想大家不要绕到坑里,这2种办法无非便是利用PAYPAL的类库SDK,或者是PDT与IPN的办法去验证。好了,废话不多说直接开始:
须要的理解的干系东西如下:
1)PAYPAL的与SERVICE交互的办法,有2种:PDT与IPN的办法;如图:
PDT如下(GET办法):
IPN(POST办法)如下:
相信看了上述图都已经理解,无非便是GET的办法(即:用户支付完成后直接跳转回来到商户网站,通过get的办法获取到对应参数,商户再与PAYPAL进行验证)与POST的办法(即:异步,用户支付完成后没有跳转回商户网站,PAYPAL通过POST的办法给商户网站获取到对应参数,商户网站再与PAYPAL进行验证)
2)对上述东西知道了之后,有了大致的理解,然后你须要去https://developer.paypal.com/developer/accounts/注册一个帐号在PAYPAL网站上,PAYPAL很友好的供应了SANDBOX办法,即:测试环境,这个专门给开拓者测试用的,你注册了开拓者帐号后,系统会自己给你开通2个测试帐号:一个是买家(xxx@youmail-buyer.com)一个是卖家帐号(xxx@youmail-facilitator.com),相应的注册流程,网上大概多帖子都说得很清楚,这里我就不在赘述了,自行百度。
如果你想利用APP的办法的话,可以在这个地方注册好你的APP,点击PHP(我的APP名字),然后上面就会有CLIENT ID 和 SECRET了,SECRET你须要点击show这个按钮,别找了半天找不到。^_^
3)有了帐号之后,就须要登录测试环境https://www.sandbox.paypal.com卖家帐号去设置你的干系资料;记得,帐号是开拓者帐号上面的!
--你要设置的干系资料有:(这里再啰嗦下,如果登录总是找不到个人档案,你可以登录你开拓者帐号试试,它们都是关联的。)
首先登录:->点击个人档案->即时付款关照习气设定
->点击个人档案->网站付款习气设定
上述的操作完成之后,你就可以开工了,辞官网DOWLOADS对应的SDK;不过官网的手册全是英文的,对应的文档也很乱,想要最新的源码,你须要辞官网下载,之前我便是下载了过期的DEMO,现在是17年3月份,导致一贯跟PAYPAL验证失落败!
这个是我找到的中文手册:https://www.paypal-biz.com/development/documentation/PayPal_IPN&PDT_Guide_V1.0.pdf
但是不要直接用上面的源码,已经用不了的!
开拓者文档:https://developer.paypal.com/docs/
末了这里在强调下,PAYPAL都是通过表单提交的办法天生的订单的,当然APP的办法不用,可以直接用类库帮你天生表单提交;这里我贴上我的DEMO,是自定义表单:
天生支付代码
@param array $order 订单信息
@param array $payment 支付办法信息
/
function get_code($config)
{
//测试 https://www.sandbox.paypal.com/cgi-bin/webscr
$deal_url = '<br /><form style=\"大众text-align:center;\"大众 id=\公众form1\"大众 name=\公众form1\公众 action=\"大众https://www.paypal.com/cgi-bin/webscr\"大众 method=\"大众post\"大众 class=\"大众paypal\公众>' .
\"大众<input type='hidden' name='cmd' value='_xclick'>\公众 .//见告paypal该表单是立即购买
\公众<input type='hidden' name='business' value=''>\"大众 .//卖家帐号 也便是收钱的帐号
\公众<input type='hidden' name='item_name' value=''>\"大众 .//商品名称 item_number
\公众<input type='hidden' name='item_number' value=''>\公众 .//物品号 item_number
\"大众<input type='hidden' name='amount' value=''>\公众 .// 订单金额
\公众<input type='hidden' name='currency_code' value='USD'>\"大众 .// 货币
\"大众<input type='hidden' name='return' value=''>\公众 .// 支付成功后网页跳转地址
\"大众<input type='hidden' name='notify_url' value=''>\"大众 .//支付成功后paypal后台发送订单关照地址
\公众<input type='hidden' name='cancel_return' value=''>\"大众 .//用户取消交易返回地址
\"大众<input type='hidden' name='invoice' value=''>\"大众 .//自定义订单号
\"大众<input type='hidden' name='charset' value='utf-8'>\公众 .// 字符集
\"大众<input type='hidden' name='no_shipping' value='1'>\"大众 .// 不哀求客户供应收货地址
\公众<input type='hidden' name='no_note' value=''>\公众 .// 付款解释
\"大众<input type='hidden' name='rm' value='2'>\公众 .
\"大众</form><br />
<script type='text/javascript'>function load_submit(){document.form1.submit()}load_submit();</script>\"大众;
return $deal_url;
}
提交给PAYPAL会天生一个页面,上面有你刚刚填写对应的订单信息;而且它集成手机端自适应的办法,会自动调度好页面,我就不贴图了,可以自己去试试:
填写好你的资料,帐号或者用信用卡支付都可以,确认完成后会提示你支付成功,10秒钟会自动返回!
APP的办法是立即返回的!
返回就会有对应的地址了:
http://xxx.com/index.php/pay/paypal_url/houtai/amt=1.00&cc=USD&item_name=C14896341493008718&item_number=C14896341493008718&st=Pending&tx=6R903017GR561561Y
这个便是你PDT返回的地址,即通过GET的办法获取到参数跟PAYPAL验证!