Привет, я использую omnipay github lib с интеграцией migs в моем проекте. Образец кода, похоже, не работает. Кто-нибудь может мне с этим помочь?
require_once 'vendor/autoload.php';
use \Omnipay\Omnipay as omnipay;
$gateway = Omnipay::create('Migs_ThreeParty');
$gateway->setMerchantId('foo');
$gateway->setMerchantAccessCode('foo');
$gateway->setSecureHash('foo');
try {
$response = $gateway->purchase(array('amount' => '0.00', 'currency' => 'AED', 'returnURL' => 'www.google.com.pk'))->send();
if ($response->isRedirect()) {
// redirect to offsite payment gateway
$response->redirect();
//$url = $response->getRedirectUrl();
//$data = $response->getRedirectData();
} else {
// payment failed: display message to customer
echo $response->getMessage();
}
} catch (\Exception $e) {
// internal error, log exception and display a generic message to the customer
exit('Sorry, there was an error processing your payment. Please try again later.');
}
"$gateway-> setSecureHash" == "$ SECURE_SECRET", как показано в примере ссылки http://integrate-payment-gateway.blogspot.in/2012/01/migs-payment-gateway-integration-php.html
Вышеприведенный код запрашивает redirectUrl и transactionId. Где его указать?
require_once 'vendor/autoload.php';
use \Omnipay\Omnipay as omnipay;
$gateway = Omnipay::create('Migs_ThreeParty');
$gateway->setMerchantId('MerchantId');
$gateway->setMerchantAccessCode('MerchantAccessCode');
$gateway->setSecureHash('SecureHash');
try {
$response = $gateway->purchase(array(
'amount' => '10.00', // amount should be greater than zero
'currency' => 'AED',
'transactionId' => 'refnodata', // replace this for your reference # such as invoice reference #
'returnURL' => 'http://yourdomain.com/returnPage.php'))->send();
if ($response->isRedirect()) {
$url = $response->getRedirectUrl(); // do whatever with the return url
} else {
// payment failed: display message to customer
echo $response->getMessage();
}
} catch (\Exception $e) {
// internal error, log exception and display a generic message to the customer
echo $e;
exit('Sorry, there was an error processing your payment. Please try again later.');
}
У меня был тот же вопрос, о чем говорит returnURL? Ответ - это разница между методами Migs_TwoParty и Migs_ThreeParty.
Migs_ThreeParty передает управление поставщику платежей и когда обработанный платеж обрабатывается, он возвращается на ваш сайт. В документации это делается так:
Интернет-браузер владельца карты перенаправляется для запроса транзакции на платежный сервер для обработки транзакции. После обработки транзакции интернет-браузер владельца карты возвращается на веб-страницу, которую вы назначаете в транзакции вместе с ответом на транзакцию. Обработка транзакции с информацией о получении завершает транзакцию.
Если вы хотите сделать все сопряжение с Gateway самостоятельно, вы должны использовать метод Migs_TwoParty. Тогда returnURL не требуется.
Cheers Murray