PayPal_PHP_NVP_Samples 示例代码讲解

Server 林涛 3747℃ 0评论

SetExpressCheckout.php?paymentType=Sale是表示直接付款

SetExpressCheckout.php里面基本上就等于是商家的购物车,里面有购物的清单总价等等,把这些数据提交到ReviewOrder.php

ReviewOrder.php 一开始就有个判断if(! isset($token)) 由于在跳转到paypal之后返回的页面也是这个所以这里用这个判断来判断是从paypal跳转回来的还是从SetExpressCheckout.php过来的

如果是从SetExpressCheckout.php跳转过来的,首先是把在SetExpressCheckout.php里面的一些参数赋值,比如$paymentAmount=$_REQUEST[‘paymentAmount’];就是把订单总额赋值给paymentAmount
然后在第SetExpressCheckout.php 88 $nvpstr=”&Amt=”.$paymentAmount.”&PAYMENTACTION=”.$paymentType.”&ReturnUrl=”.$returnURL.”&CANCELURL=”.$cancelURL .”&CURRENCYCODE=”.$currencyCodeType;

这一行就是把所有的参数按照 参数名=参数值&参数名=参数值 的方法组织成一个字符串。这个地方,如果你们网站上有运费,你就可以按照PayPal在快速支付里面预留的运费参数加上

(这些参数的命名规则你都可以在http://ppdev.ebay.cn/files/developer/PP_NVP_API_Guide_CHN.pdf这个文档里面找到)

紧接着下面第95
$resArray=hash_call(“SetExpressCheckout”,$nvpstr);
就是通过函数hash_callcall PayPal call完之后会立即有返回数据,也就是下面的

$ack = strtoupper($resArray[“ACK”]);

if($ack==”SUCCESS”)

ack的值是SUCCESS的时候就表示这次API call是成功的,然后就可以把客户端浏览器重定向到PayPal

$token = urldecode($resArray[“TOKEN”]);

$payPalURL = PAYPAL_URL.$token;

header(“Location: “.$payPalURL);

在重定向的时候会把hash_call返回数据中的TOKEN也带上,这样就可以让paypal知道,这个客户是要付是哪比款

当客户来到paypal后,输入信用卡,或者登录paypal,确定后会返回你们的网站的网站,返回的地址就是之前加入到$nvpstr这个支付穿里面的&ReturnUrl=”.$returnURL.”这个$returnURL的值是$returnURL =urlencode($url.’/ReviewOrder.php?currencyCodeType=’.$currencyCodeType.’&paymentType=’.$paymentType.’&paymentAmount=’.$paymentAmount);

也就是会返回到ReviewOrder.php

由于返回的时候会有TOKEN所以会执行110行下面的代码

130行的时候$resArray=hash_call(“GetExpressCheckoutDetails”,$nvpstr);通过hash_call获取之前客户登录或者输入信用卡时留下的个人信息

这里面就包括了买家的国家,地址,姓名等等

131行把所有的参数都放到session里面$_SESSION[‘reshash’]=$resArray;

然后客户的浏览器被重定向到GetExpressCheckoutDetails.php

GetExpressCheckoutDetails.php这个页面就是把数据显示出来,当然你也可以去掉或者修改这个页面,可以把获得的数据存到你们的数据库里面,或者给这个客户按照他的信息给他创建一个你们网站的帐号。

GetExpressCheckoutDetails.php这个页面的表单指向DoExpressCheckoutPayment.php

DoExpressCheckoutPayment.php就是做最后的付款

36 $resArray=hash_call(“DoExpressCheckoutPayment”,$nvpstr);

$nvpstr 这个字符串就包括了这笔付款的所以数据

在返回的数据里面resArray就会有这笔交易的详细数据,包括是否成功等等



所需要的各种变量的命名规则和作用都可以在http://ppdev.ebay.cn/files/developer/PP_NVP_API_Guide_CHN.pdf这个文档里面找到

如需转载请注明: 转载自26点的博客

本文链接地址: PayPal_PHP_NVP_Samples 示例代码讲解

转载请注明:26点的博客 » PayPal_PHP_NVP_Samples 示例代码讲解

喜欢 (0)
发表我的评论
取消评论

表情