You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.7 KiB
PHP
57 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace Think\Pay\Driver;
|
|
|
|
class Palpay extends \Think\Pay\Pay {
|
|
|
|
protected $gateway = 'https://www.paypal.com/cgi-bin/webscr';
|
|
protected $config = array(
|
|
'business' => ''
|
|
);
|
|
|
|
public function check() {
|
|
if (!$this->config['business']) {
|
|
E("贝宝设置有误!");
|
|
}
|
|
return true;
|
|
}
|
|
|
|
public function buildRequestForm(\Think\Pay\PayVo $vo) {
|
|
$param = array(
|
|
'cmd' => '_xclick',
|
|
'charset' => 'utf-8',
|
|
'business' => $this->config['business'],
|
|
'currency_code' => 'USD',
|
|
'notify_url' => $this->config['notify_url'],
|
|
'return' => $this->config['return_url'],
|
|
'invoice' => $vo->getOrderNo(),
|
|
'item_name' => $vo->getTitle(),
|
|
'amount' => $vo->getFee(),
|
|
'no_note' => 1,
|
|
'no_shipping' => 1
|
|
);
|
|
$sHtml = $this->_buildForm($param, $this->gateway);
|
|
|
|
return $sHtml;
|
|
}
|
|
|
|
public function verifyNotify($notify) {
|
|
if (empty($notify['txn_id']))
|
|
return false;
|
|
$tmpAr = array_merge($notify, array("cmd" => "_notify-validate"));
|
|
|
|
$ppResponseAr = $this->fsockOpen($this->gateway, 0, $tmpAr);
|
|
if ((strcmp($ppResponseAr, "VERIFIED") == 0) && $notify['receiver_email'] == $this->config['business']) {
|
|
$info = array();
|
|
//支付状态
|
|
$info['status'] = $notify['payment_status'] == 'Completed' ? true : false;
|
|
$info['money'] = $notify['mc_gross'];
|
|
$info['out_trade_no'] = $notify['invoice'];
|
|
$this->info = $info;
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
}
|