本文實例講述了php銀聯網頁支付實現方法。分享給大家供大家參考。具體分析如下:
這里介紹的銀聯WAP支付功能,僅限消費功能。
1. PHP代碼如下:
代碼如下:<?php
namespace common/services;
class UnionPay
{
/**
* 支付配置
* @var array
*/
public $config = [];
/**
* 支付參數,提交到銀聯對應接口的所有參數
* @var array
*/
public $params = [];
/**
* 自動提交表單模板
* @var string
*/
private $formTemplate = <<<'HTML'
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>支付</title>
</head>
<body>
<div style="text-align:center">跳轉中...</div>
<form id="pay_form" name="pay_form" action="%s" method="post">
%s
</form>
<script type="text/javascript">
document.onreadystatechange = function(){
if(document.readyState == "complete") {
document.pay_form.submit();
}
};
</script>
</body>
</html>
HTML;
/**
* 構建自動提交HTML表單
* @return string
*/
public function createPostForm()
{
$this->params['signature'] = $this->sign();
$input = '';
foreach($this->params as $key => $item) {
$input .= "/t/t<input type=/"hidden/" name=/"{$key}/" value=/"{$item}/">/n";
}
return sprintf($this->formTemplate, $this->config['frontUrl'], $input);
}
/**
* 驗證簽名
* 驗簽規則:
* 除signature域之外的所有項目都必須參加驗簽
* 根據key值按照字典排序,然后用&拼接key=value形式待驗簽字符串;
* 然后對待驗簽字符串使用sha1算法做摘要;
新聞熱點
疑難解答