我正在使用使用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