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银联网页支付实现方法相关推荐

  1. 银联支付页面怎么调起 php,php银联网页支付实现方法

    这篇文章主要介绍了php银联网页支付实现方法,实例分析了php操作银联网支付接口的技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了php银联网页支付实现方法.分享给大家供大家参考.具体 ...

  2. php银联支付密钥,php银联网页支付实现方法

    php银联网页支付实现方法 /** * 取签名证书ID(SN) * @return string */ public function getSignCertId() { return $this-& ...

  3. 微信app支付和微信网页支付 java

    微信app支付和微信网页支付大致相同,但是细节上还是有些区分的 1.微信网页支付代码 @PostMapping(value = "wxPay")@ApiOperation(&quo ...

  4. 京东支付,支付宝网页支付,财付通支付

    这些支付均为网页支付,网页支付的工作量均不在手机端,所以遇到这种问题你该庆幸,只需用webview加载一个web端给你的url就好了,支付宝代码如下,其他的和它一模一样,只是url不一样 public ...

  5. 支付宝 实现 移动网页支付、PC网页支付、混合APP支付(支持微信支付)

    1.移动网页支付 支付宝开放平台中申创建移动网页应用: 前端比较省事 1.若后台返回的是form表单执行以下代码,每次用完及时销毁: 当然不想写承载页的还有其他方法调起支付,具体逻辑具体分析,根据不同 ...

  6. 移动网页支付(微信H5支付和支付宝网页支付)

    支付宝网页支付: 1.前端发送(流水号,手机号,产品ID,金额,回调地址,取消地址,支付类型)支付信息给后端, 2.后端组装数据,通过SDK向支付宝发起请求,返回数据给前端. let loc =&qu ...

  7. 银联支付 - 手机控件支付和WAP网页支付

    <?php namespace common\services;class UnionPay {/*** 支付配置* @var array*/public $config = [];/*** 支 ...

  8. Django学习记录10——Django使用支付宝付款(电脑支付,手机网页支付,面对面扫码)

    目录 一.注册支付宝开放平台账号 1.注册 2.创建公私秘钥 2.项目中添加公私密钥 二.生成二维码 1.安装模块等 2.模块的结构 3.电脑支付 4.手机支付 5.面对面扫码(真二维码支付) 三.小 ...

  9. 让每个网站改成自适应网页的实现方法!

    自适应网页设计可使网站在多种浏览设备(从桌面电脑显示器到智能手机或其他移动产品设备)上具有更好的阅读体验. 1.在HTML头部增加viewport标签. 在网站HTML文件的开头,增加viewport ...

最新文章

  1. iOS9 This application is modifying the autolayout engine from a background thread, which
  2. Esper学习之十二:EPL语法(八)
  3. AndroidStudio 解决Android方法数超过65535的问题
  4. 初次转化max模型为3D Tiles失败、cesium加载一个obj格式的3D 机房模型
  5. 实战:Windows Server 2008 使用WSUS实现内网计算机系统更新
  6. jQuery库与其他JS库冲突的解决办法
  7. python做些什么项目_Python 的练手项目有哪些值得推荐
  8. python求数字平均值_Python简单计算数组元素平均值的方法示例
  9. 【只推荐一位】推荐一位资深Python爱好者,现任世界500强架构师
  10. 软考中级网络工程师全面学习笔记第1版(近4万字)
  11. 【免费领取】石杉架构班Kafka消息中间件内核源码课程
  12. 防御DDoS攻击的十一种方法
  13. ios不行安卓可以 微信签名_微信支付-支付验证签名失败(iOS)
  14. 在标准c语言中 =是判断两个数是否相等,='运算符用于判断两个数是否相等。
  15. 微波射频学习笔记17-------LC谐振的验证和LC滤波器原理
  16. FL Studio教程之Fruity Wrapper插件讲解
  17. 沉降观测曲线图 沉降观测汇总_沉降观测曲线图怎么画?
  18. 海康威视java读取摄像头数据
  19. 解决latex图片浮动体过多的报错:Output loop---100 consecutive dead cycles和Too many unprocessed floats
  20. HDU 2174 Bridged Marble Rings

热门文章

  1. 【计算】空气质量综合指数+空气质量指数
  2. 手电筒java下载_Android studio编写简单的手电筒APP
  3. Cisco ASA/FTD未授权文件删除漏洞简要分析
  4. 计算机分辨率启动,电脑启动时分辨率都不对为什么
  5. 微信公众号流量主的实际收益(本人亲测)
  6. 【一起学Rust | 开源项目】效率提升工具espanso——在日常输入中使用代码提示
  7. 2022国际数维杯C题思路
  8. matlab下标赋值维度不匹配,Matlab VPAsolve错误(sym / subsasgn和sym / privsubsasgn)维度不匹配...
  9. 第133天学习打卡(Docker 初识Docker Docker的基本组成 安装docker 阿里云镜像加速 Docker常用命令)
  10. 1月第2周业务风控关注 | 微信打击盗用他人的身份恶意注册,去年处理300多万例