我正在使用使用paypals Website Payments Pro Hosted Solution,所以我们可以通过paypal接受付款,而我们的用户感觉他们正在离开网站,并且我们不必遵守PCI标准。Paypal的工作示例Website Payments Pro托管解决方案Iframe?
我们希望这个以这种格式的工作:
- 用户点击购买页面中的项目,并选择数量和命中现在购买按钮
- AJAX请求被发送到服务器,以验证数量/计算总等
- AJAX请求的iframe
- iframe是填充了页面返回的URL,然后一旦完成加载的iframe显示
- 用户填写信用卡信息和paypal完成交易
- paypal重定向iframe的成功页面,以在父页面中调用一些JavaScript重定向到另一个url。
所以, 我有数量选择页面,
我知道如何将数据发送到服务器,并验证量/计算总
什么我不知道该怎么做的是从这个点发送请求到贝宝获取iframe的网址。
我试图做(作为一个非常基本的独立的例子)是:
<?php
class paypal {
private $APIuser;
private $APIpass;
private $APIsign;
private $APIvers = '74.0';
private $APIaddr = 'https://api-3t.sandbox.paypal.com/nvp';
private $post_params = array();
function __construct($APIuser, $APIpass, $APIsign){
$this->APIuser = $APIuser;
$this->APIpass = $APIpass;
$this->APIsign = $APIsign;
}
function param($name, $value = null){
$this->post_params[$name] = $value;
return $this;
}
function getUrl(){
$post = $this->post_params;
$post['pwd'] = $this->APIpass;
$post['user'] = $this->APIuser;
$post['method'] = 'BMCreateButton';
$post['version'] = $this->APIvers;
$post['signature'] = $this->APIsign;
$post['buttoncode'] = 'CLEARTEXT';
$post['buttontype'] = 'PAYMENT';
$post_string = '?';
foreach($post as $k => $v)
$post_string .= $k.'='.urlencode($v).'&';
$post_string = substr($post_string, 0, -1);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->APIaddr.$post_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$out = curl_exec($ch);
curl_close($ch);
$out = explode('&', $out);
$final = array();
foreach($out as $k => &$v){
$v = explode('=', $v);
$final[$v[0]] = urldecode($v[1]);
}
return $final;
}
}
//mock variables
$price = 10.00;
$APIu = 'xxxxxxxxxx';
$APIp = 'xxxxxxxxxx';
$APIs = 'xxxxxxxxxx';
$paypal = new paypal($APIu, $APIp, $APIs);
$paypal->param('L_BUTTONVAR0=subtotal', $price*$_GET['quantity']);
$paypal->param('L_BUTTONVAR1=template', 'templateD');
$resp = $paypal->getUrl();
?>
<iframe width="100%" height=100%" src="<?php echo $resp['EMAILLINK']; ?>"></iframe>
起初似乎做工精细,直到你进入你的测试购房者的信用卡信息并获得击中
请返回付款页面并更正地址。
我在做什么错误/我需要做什么工作?
如果你不确定,经常检查官方文档 - https://cms.paypal.com/us/cgi-bin/?cmd=_render- content&content_ID = developer/library_documentation – ajreal
@ajreal:我做到了!事实上,在经历了八个小时的考验之后,他们称这是我想出的文档!因此我寻求帮助! – Hailwood
LMGTFY - 可能重复[Paypal集成:请返回付款页面并更正地址](http://stackoverflow.com/questions/6648804/paypal-integration-please-return-to-the-payment-page-和正确的地址) – ajreal