php实现网站支付,php银联网页支付实现方法
php银联网页支付实现方法
php银联网页支付实现方法,实例分析了php操作银联网支付接口的技巧,具有一定参考借鉴价值,需要的朋友可以参考下.
这里介绍的`银联WAP支付功能,仅限消费功能。
1. PHP代码如下:
复制代码 代码如下:
namespace common\services;
class UnionPay
{
/**
* 支付配置
* @var array
*/
public $config = [];
/**
* 支付参数,提交到银联对应接口的所有参数
* @var array
*/
public $params = [];
/**
* 自动提交表单模板
* @var string
*/
private $formTemplate = <<
支付
跳转中...
%s
document.onreadystatechange = function(){
if(document.readyState == "complete") {
document.pay_form.submit();
}
};
HTML;
/**
* 构建自动提交HTML表单
* @return string
*/
public function createPostForm()
{
$this->params['signature'] = $this->sign();
$input = '';
foreach($this->params as $key => $item) {
$input .= "\t\t\n";
}
return sprintf($this->formTemplate, $this->config['frontUrl'], $input);
}
/**
* 验证签名
* 验签规则:
* 除signature域之外的所有项目都必须参加验签
* 根据key值按照字典排序,然后用&拼接key=value形式待验签字符串;
* 然后对待验签字符串使用sha1算法做摘要;
* 用银联公钥对摘要和签名信息做验签操作
*
* @throws \Exception
* @return bool
*/
public function verifySign()
{
$publicKey = $this->getVerifyPublicKey();
$verifyArr = $this->filterBeforSign();
ksort($verifyArr);
$verifyStr = $this->arrayToString($verifyArr);
$verifySha1 = sha1($verifyStr);
$signature = base64_decode($this->params['signature']);
$result = openssl_verify($verifySha1, $signature, $publicKey);
if($result === -1) {
throw new \Exception('Verify Error:'.openssl_error_string());
}
return $result === 1 ? true : false;
}
php实现网站支付,php银联网页支付实现方法相关推荐
- 银联支付页面怎么调起 php,php银联网页支付实现方法
这篇文章主要介绍了php银联网页支付实现方法,实例分析了php操作银联网支付接口的技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了php银联网页支付实现方法.分享给大家供大家参考.具体 ...
- php银联支付密钥,php银联网页支付实现方法
php银联网页支付实现方法 /** * 取签名证书ID(SN) * @return string */ public function getSignCertId() { return $this-& ...
- 微信app支付和微信网页支付 java
微信app支付和微信网页支付大致相同,但是细节上还是有些区分的 1.微信网页支付代码 @PostMapping(value = "wxPay")@ApiOperation(&quo ...
- 京东支付,支付宝网页支付,财付通支付
这些支付均为网页支付,网页支付的工作量均不在手机端,所以遇到这种问题你该庆幸,只需用webview加载一个web端给你的url就好了,支付宝代码如下,其他的和它一模一样,只是url不一样 public ...
- 支付宝 实现 移动网页支付、PC网页支付、混合APP支付(支持微信支付)
1.移动网页支付 支付宝开放平台中申创建移动网页应用: 前端比较省事 1.若后台返回的是form表单执行以下代码,每次用完及时销毁: 当然不想写承载页的还有其他方法调起支付,具体逻辑具体分析,根据不同 ...
- 移动网页支付(微信H5支付和支付宝网页支付)
支付宝网页支付: 1.前端发送(流水号,手机号,产品ID,金额,回调地址,取消地址,支付类型)支付信息给后端, 2.后端组装数据,通过SDK向支付宝发起请求,返回数据给前端. let loc =&qu ...
- 银联支付 - 手机控件支付和WAP网页支付
<?php namespace common\services;class UnionPay {/*** 支付配置* @var array*/public $config = [];/*** 支 ...
- Django学习记录10——Django使用支付宝付款(电脑支付,手机网页支付,面对面扫码)
目录 一.注册支付宝开放平台账号 1.注册 2.创建公私秘钥 2.项目中添加公私密钥 二.生成二维码 1.安装模块等 2.模块的结构 3.电脑支付 4.手机支付 5.面对面扫码(真二维码支付) 三.小 ...
- 让每个网站改成自适应网页的实现方法!
自适应网页设计可使网站在多种浏览设备(从桌面电脑显示器到智能手机或其他移动产品设备)上具有更好的阅读体验. 1.在HTML头部增加viewport标签. 在网站HTML文件的开头,增加viewport ...
最新文章
- iOS9 This application is modifying the autolayout engine from a background thread, which
- Esper学习之十二:EPL语法(八)
- AndroidStudio 解决Android方法数超过65535的问题
- 初次转化max模型为3D Tiles失败、cesium加载一个obj格式的3D 机房模型
- 实战:Windows Server 2008 使用WSUS实现内网计算机系统更新
- jQuery库与其他JS库冲突的解决办法
- python做些什么项目_Python 的练手项目有哪些值得推荐
- python求数字平均值_Python简单计算数组元素平均值的方法示例
- 【只推荐一位】推荐一位资深Python爱好者,现任世界500强架构师
- 软考中级网络工程师全面学习笔记第1版(近4万字)
- 【免费领取】石杉架构班Kafka消息中间件内核源码课程
- 防御DDoS攻击的十一种方法
- ios不行安卓可以 微信签名_微信支付-支付验证签名失败(iOS)
- 在标准c语言中 =是判断两个数是否相等,='运算符用于判断两个数是否相等。
- 微波射频学习笔记17-------LC谐振的验证和LC滤波器原理
- FL Studio教程之Fruity Wrapper插件讲解
- 沉降观测曲线图 沉降观测汇总_沉降观测曲线图怎么画?
- 海康威视java读取摄像头数据
- 解决latex图片浮动体过多的报错:Output loop---100 consecutive dead cycles和Too many unprocessed floats
- HDU 2174 Bridged Marble Rings
热门文章
- 【计算】空气质量综合指数+空气质量指数
- 手电筒java下载_Android studio编写简单的手电筒APP
- Cisco ASA/FTD未授权文件删除漏洞简要分析
- 计算机分辨率启动,电脑启动时分辨率都不对为什么
- 微信公众号流量主的实际收益(本人亲测)
- 【一起学Rust | 开源项目】效率提升工具espanso——在日常输入中使用代码提示
- 2022国际数维杯C题思路
- matlab下标赋值维度不匹配,Matlab VPAsolve错误(sym / subsasgn和sym / privsubsasgn)维度不匹配...
- 第133天学习打卡(Docker 初识Docker Docker的基本组成 安装docker 阿里云镜像加速 Docker常用命令)
- 1月第2周业务风控关注 | 微信打击盗用他人的身份恶意注册,去年处理300多万例