php银联网页支付实现方法

/**

* 取验证签名证书

* @throws \InvalidArgumentException

* @return string

*/

private function getVerifyPublicKey()

{

//先判断配置的验签证书是否银联返回指定的证书是否一致

if($this->getCertIdCer($this->config['verifyCertPath']) != $this->params['certId']) {

throw new \InvalidArgumentException('Verify sign cert is incorrect');

}

return file_get_contents($this->config['verifyCertPath']);

}

}

2. 配置示例

复制代码 代码如下:

//银联支付设置

'unionpay' => [

//测试环境参数

'frontUrl' => 'https://101.231.204.80:5000/gateway/api/frontTransReq.do', //前台交易请求地址

//'singleQueryUrl' => 'https://101.231.204.80:5000/gateway/api/queryTrans.do', //单笔查询请求地址

'signCertPath' => __DIR__.'/../keys/unionpay/test/sign/700000000000001_acp.pfx', //签名证书路径

'signCertPwd' => '000000', //签名证书密码

'verifyCertPath' => __DIR__.'/../keys/unionpay/test/verify/verify_sign_acp.cer', //验签证书路径

'merId' => 'xxxxxxx',

//正式环境参数

//'frontUrl' => 'https://101.231.204.80:5000/gateway/api/frontTransReq.do', //前台交易请求地址

//'singleQueryUrl' => 'https://101.231.204.80:5000/gateway/api/queryTrans.do', //单笔查询请求地址

//'signCertPath' => __DIR__.'/../keys/unionpay/test/sign/PM_700000000000001_acp.pfx', //签名证书路径

//'signCertPwd' => '000000', //签名证书密码

//'verifyCertPath' => __DIR__.'/../keys/unionpay/test/verify/verify_sign_acp.cer', //验签证书路径

//'merId' => 'xxxxxxxxx', //商户代码

],

3. 支付示例

复制代码 代码如下:

$unionPay = new UnionPay();

$unionPay->config = Yii::$app->params['unionpay'];//上面的配置

$unionPay->params = [

'version' => '5.0.0', //版本号

'encoding' => 'UTF-8', //编码方式

'certId' => $unionPay->getSignCertId(), //证书ID

'signature' => '', //签名

'signMethod' => '01', //签名方式

'txnType' => '01', //交易类型

'txnSubType' => '01', //交易子类

'bizType' => '000201', //产品类型

'channelType' => '08',//渠道类型

'frontUrl' => Url::toRoute(['payment/unionpayreturn'], true), //前台通知地址

'backUrl' => Url::toRoute(['payment/unionpaynotify'], true), //后台通知地址

//'frontFailUrl' => Url::toRoute(['payment/unionpayfail'], true), //失败交易前台跳转地址

'accessType' => '0', //接入类型

'merId' => Yii::$app->params['unionpay']['merId'], //商户代码

'orderId' => $orderNo, //商户订单号

'txnTime' => date('YmdHis'), //订单发送时间

'txnAmt' => $sum * 100, //交易金额,单位分

'currencyCode' => '156', //交易币种

];

$html = $unionPay->createPostForm();

4. 异步通知示例

复制代码 代码如下:

$unionPay = new UnionPay();

$unionPay->config = Yii::$app->params['unionpay'];

$unionPay->params = Yii::$app->request->post(); //银联提交的参数

if(empty($unionPay->params)) {

return 'fail!';

}

if($unionPay->verifySign() && $unionPay->params['respCode'] == '00') {

//.......

}

【php银联网页支付实现方法】相关文章:

php app 银联支付,php银联网页支付实现方法相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

  7. think PHP 银联支付,thinkphp3.2整合银联手机网页支付

    1.和银联签约,签约成功之后才进行技术集成,到银联官方下载手机网页支付的技术文档和demo代码: https://open.unionpay.com/ajweb/help/file/techFile? ...

  8. 银联支付-手机网页支付接口开发

    这2天因为项目需要,银联支付的手机网页支付,已经把测试ok了, 所以这里做个记录. 1,到银联的官网下载demo,注意官网是按照平台区别的(pc端.手机网页.手机控件),下载手机网页版本的demo.d ...

  9. 西米支付:支付宝/微信支付/银联支付通道的接入介绍

    本文以电脑网站支付为例,着重对第三方支付通道的接入进行了分析,包括支付宝支付接入.微信支付接入及银联支付接入. 1.支付宝支付接入 支付宝支付能力主要有当面付.刷脸付.App支付.手机网站支付.电脑网 ...

  10. 对接支付宝App支付和网页支付接口详解

    之前在项目中使用过支付宝的沙箱测试支付和实际开发支付,是关于App对接支付宝接口的,由于前段时间有朋友询问怎么对接网页支付,通过研究支付包的开发文档,在这里总结一下对接支付宝的App支付接口和网页支付 ...

最新文章

  1. 学习笔记Hadoop(二)—— Hadoop介绍(2)——Hadoop 核心组件
  2. 厉害了!祝贺PolarDB喜提科技进步一等奖
  3. java 开源 网络流量统计_jpcap java流量监控
  4. 用户控件(UserControl)
  5. 深度学习 《梯度消失和梯度爆炸》
  6. 什么是ci/cd_什么是CI / CD?
  7. 七夕-探探小卡片鸿蒙版
  8. ajax中异步属性,ajax中的async属性值之同步和异步及同步和异步区别
  9. android Volley解析之自定义CookieObjectRequest
  10. linux sed批量更改文件,Linux利用sed批量修改文件名(示例代码)
  11. Atitit 学习的本质 团队管理与培训的本质 attilax总结 v2
  12. SQL Server 2016如何创建数据库
  13. 故障树分析法(FTA)
  14. pyqt+pyqtgraph+lka(界面制作)
  15. 自定义配置文件 /etc/httpd/conf.d
  16. 深度自定义macOS邮件程序的个性签名内容
  17. 经典逻辑题:猜牌问题——网上的结论是没问题的
  18. 7z压缩 lzma流式压缩、解压缩的实现 C语言
  19. 独立版旺店助手源码在线持续更新
  20. includes() 方法

热门文章

  1. PT100铂电阻温度传感器详解
  2. MIPI DSI 接口协议介绍
  3. 蓝牙技术|伦茨科技智能语音遥控器方案简介
  4. Excel如何复制一摸一样的表格或建立副本
  5. 【历史上的今天】1946年2月14日:世界上第一台计算机ENIAC诞生
  6. 洛谷P4707 重返现世 kMAX-MIN反演+DP
  7. 李少白讲摄影-不放过一切光线 地坛书市新书首发圆满结束
  8. Internet选项里没有常规选项卡
  9. 如何查看一篇论文是否被SCI检索
  10. 畅游陈德文:中国网游的发展与未来趋势