sifangpay/app/Http/Controllers/Web/UnionPayController.php

98 lines
3.8 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace App\Http\Controllers\Web;
use App\Models\Merchant;
use App\Models\Order;
use Illuminate\Http\Request;
use Omnipay;
use Illuminate\Support\Facades\Route;
class UnionPayController extends BaseController
{
public function getKey()
{
$str = '-----BEGIN CERTIFICATE-----
MIIEQzCCAyugAwIBAgIFEBJJZVgwDQYJKoZIhvcNAQEFBQAwWDELMAkGA1UEBhMC
Q04xMDAuBgNVBAoTJ0NoaW5hIEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhv
cml0eTEXMBUGA1UEAxMOQ0ZDQSBURVNUIE9DQTEwHhcNMTcxMTAxMDcyNDA4WhcN
MjAxMTAxMDcyNDA4WjB3MQswCQYDVQQGEwJjbjESMBAGA1UEChMJQ0ZDQSBPQ0Ex
MQ4wDAYDVQQLEwVDVVBSQTEUMBIGA1UECxMLRW50ZXJwcmlzZXMxLjAsBgNVBAMU
JTA0MUBaMjAxNy0xMS0xQDAwMDQwMDAwOlNJR05AMDAwMDAwMDEwggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDIWO6AESrg+34HgbU9mSpgef0sl6avr1d
bD/IjjZYM63SoQi3CZHZUyoyzBKodRzowJrwXmd+hCmdcIfavdvfwi6x+ptJNp9d
EtpfEAnJk+4quriQFj1dNiv6uP8ARgn07UMhgdYB7D8aA1j77Yk1ROx7+LFeo7rZ
Ddde2U1opPxjIqOPqiPno78JMXpFn7LiGPXu75bwY2rYIGEEImnypgiYuW1vo9UO
G47NMWTnsIdy68FquPSw5FKp5foL825GNX3oJSZui8d2UDkMLBasf06Jz0JKz5AV
blaI+s24/iCfo8r+6WaCs8e6BDkaijJkR/bvRCQeQpbX3V8WoTLVAgMBAAGjgfQw
gfEwHwYDVR0jBBgwFoAUz3CdYeudfC6498sCQPcJnf4zdIAwSAYDVR0gBEEwPzA9
BghggRyG7yoBATAxMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmNmY2EuY29tLmNu
L3VzL3VzLTE0Lmh0bTA5BgNVHR8EMjAwMC6gLKAqhihodHRwOi8vdWNybC5jZmNh
LmNvbS5jbi9SU0EvY3JsMjQ4NzIuY3JsMAsGA1UdDwQEAwID6DAdBgNVHQ4EFgQU
mQQLyuqYjES7qKO+zOkzEbvdFwgwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUF
BwMEMA0GCSqGSIb3DQEBBQUAA4IBAQAujhBuOcuxA+VzoUH84uoFt5aaBM3vGlpW
KVMz6BUsLbIpp1ho5h+LaMnxMs6jdXXDh/du8X5SKMaIddiLw7ujZy1LibKy2jYi
YYfs3tbZ0ffCKQtv78vCgC+IxUUurALY4w58fRLLdu8u8p9jyRFHsQEwSq+W5+bP
MTh2w7cDd9h+6KoCN6AMI1Ly7MxRIhCbNBL9bzaxF9B5GK86ARY7ixkuDCEl4XCF
JGxeoye9R46NqZ6AA/k97mJun//gmUjStmb9PUXA59fR5suAB5o/5lBySZ8UXkrI
pp/iLT8vIl1hNgLh0Ghs7DBSx99I+S3VuUzjHNxL6fGRhlix7Rb8
-----END CERTIFICATE-----';
return $str;
}
function UnionPayConfig()
{
$gateway = Omnipay\Omnipay::create('UnionPay_Express'); //银联全产品网关PCAPPWAP支付
$gateway->setMerId('777290058167387'); //商户号
$gateway->setCertPath(to_linux_path(app_path()) . '/certs/700000000000001_acp.p12'); // 商户私钥证书
$gateway->setCertDir(to_linux_path(app_path()) . '/certs/verify_sign_acp.cer'); //测试环境银联公钥证书
$gateway->setCertPassword('000000'); // 密码
$gateway->setReturnUrl(route('web.unpay.return')); // 支付后同步通知页面地址
$gateway->setNotifyUrl(route('web.unpay.return'));
return $gateway;
}
public function pay()
{
$order = [
'orderId' => date('YmdHis') . mt_rand(1000, 9999), // 订单号
'txnTime' => date('YmdHis'),
'orderDesc' => 'UnionPay Test', //订单名称
'txnAmt' => ('15' * 100), //订单价格,单位是:"分" 1x100
];
$gateway = $this->UnionPayConfig();
$response = $gateway->purchase($order)->send();
//$response->redirect(); // 发起银联支付请求
// $response = $gateway->purchase($order)->send();
echo '<div style="display: none">'.$response->getRedirectHtml().'</div>';
}
public function result(Request $request)
{
dump($request->all());
echo $request->input('orderId');
$gateway = Omnipay\Omnipay::create('UnionPay_Express');
$gateway->setMerId('777290058167387');
$gateway->setPublicKey(to_linux_path(app_path()) . '/certs/verify_sign_acp.cer'); // path or content
$response = $gateway->completePurchase(['request_params' => $_REQUEST])->send();
if ($response->isPaid()) {
//pay success
$data = $response->getData();
dump($data);
//dump($response);
echo 'respcode=00success!';
} else {
echo 111;
}
}
}