Я пытаюсь использовать адаптивный платеж Paypal с использованием опции мини-браузера с использованием Codeigniter framework в PHP для моих продуктов. Когда я нажимаю кнопку оплаты, мини-браузер открывается хорошо, но когда я нажимаю кнопку «Вход», открывается новая вкладка, но я хочу открыть этот вход в существующем мини-браузере.Paypal Adaptive payment minibrowser
Файл вид:
<html>
<head>
<script src="https://www.paypalobjects.com/js/external/apdg.js" type="text/javascript"></script>
</head>
<body>
<?php echo form_open_multipart('pay/splitPay','target="PPDGFrame"', 'class="standard"', 'id="mini-form"'); ?>
<label for="buy">Buy Now:</label>
<input type="image" id="submitBtn" value="Pay with PayPal" src="https://www.paypalobjects.com/en_US/i/btn/btn_paynowCC_LG.gif">
<input id="type" type="hidden" name="expType" value="mini">
<input id="paykey" type="hidden" name="paykey" value="10">
</form>
<script type="text/javascript" charset="utf-8">
var returnFromPayPal = function(){
alert("Returned from PayPal");
// Here you would need to pass on the payKey to your server side handle to call the PaymentDetails API to make sure Payment has been successful or not
// based on the payment status- redirect to your success or cancel/failed urls
}
var dgFlowMini = new PAYPAL.apps.DGFlowMini({trigger: 'submitBtn', expType: 'mini', callbackFunction: 'returnFromPayPal'});
</script>
контроллер:
function splitPay() {
$createPacket = array (
"actionType" => "PAY",
"currencyCode" => 'USD',
"receiverList" => array(
"receiver" => array(
array("amount"=>'2.00', "email"=>'[email protected]'),
array("amount"=>'4.00', "email"=>'[email protected]'),
)
),
"returnUrl" => 'http://localhost/paypal/index.php/pay/notify_payment',
"cancelUrl" => 'http://localhost/paypal/index.php/pay/tempo',
"requestEnvelope" => $this->envelope
);
$response = $this->_paypalSend($createPacket,"Pay");
$payKey = $response['payKey'];
$detailsPacket = array(
"requestEnvelope" => $this->envelope,
"payKey" => $payKey,
"receiverOptions" => array(
array(
"receiver"=>array(
'email'=>'[email protected]'),
'invoiceData'=>array(
'item'=>array(
array(
"name"=>'product1',
"price"=>'1.00',
"identifier"=>'P1'
),
array(
"name"=>'product2',
"price"=>'1.00',
"identifier"=>'P2'
)
)
)),
array(
"receiver"=>array(
'email'=>'[email protected]'),
'invoiceData'=>array(
'item'=>array(
array(
"name"=>'product3',
"price"=>'2.00',
"identifier"=>'P1'
),
array(
"name"=>'product4',
"price"=>'2.00',
"identifier"=>'P2'
)
)
))
)
);
$response = $this->_paypalSend($detailsPacket,"SetPaymentOptions");
$dets = $this->getPaymentOptions($payKey);
header("Location: ".$this->paypalUrl.$payKey);
}
Не существует способа заставить логин открываться в существующем мини-браузере вместо открытия новой вкладки? –
Не то, чтобы я знал. Это было не предполагаемое использование, когда поток был разработан. Но вам нужно будет проверить документы; Я не знаю всех адаптивных параметров. – geewiz
спасибо за ответ –