php app 银联支付,php银联网页支付实现方法
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银联网页支付实现方法相关推荐
- 微信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 ...
- Django学习记录10——Django使用支付宝付款(电脑支付,手机网页支付,面对面扫码)
目录 一.注册支付宝开放平台账号 1.注册 2.创建公私秘钥 2.项目中添加公私密钥 二.生成二维码 1.安装模块等 2.模块的结构 3.电脑支付 4.手机支付 5.面对面扫码(真二维码支付) 三.小 ...
- 银联支付 - 手机控件支付和WAP网页支付
<?php namespace common\services;class UnionPay {/*** 支付配置* @var array*/public $config = [];/*** 支 ...
- think PHP 银联支付,thinkphp3.2整合银联手机网页支付
1.和银联签约,签约成功之后才进行技术集成,到银联官方下载手机网页支付的技术文档和demo代码: https://open.unionpay.com/ajweb/help/file/techFile? ...
- 银联支付-手机网页支付接口开发
这2天因为项目需要,银联支付的手机网页支付,已经把测试ok了, 所以这里做个记录. 1,到银联的官网下载demo,注意官网是按照平台区别的(pc端.手机网页.手机控件),下载手机网页版本的demo.d ...
- 西米支付:支付宝/微信支付/银联支付通道的接入介绍
本文以电脑网站支付为例,着重对第三方支付通道的接入进行了分析,包括支付宝支付接入.微信支付接入及银联支付接入. 1.支付宝支付接入 支付宝支付能力主要有当面付.刷脸付.App支付.手机网站支付.电脑网 ...
- 对接支付宝App支付和网页支付接口详解
之前在项目中使用过支付宝的沙箱测试支付和实际开发支付,是关于App对接支付宝接口的,由于前段时间有朋友询问怎么对接网页支付,通过研究支付包的开发文档,在这里总结一下对接支付宝的App支付接口和网页支付 ...
最新文章
- 学习笔记Hadoop(二)—— Hadoop介绍(2)——Hadoop 核心组件
- 厉害了!祝贺PolarDB喜提科技进步一等奖
- java 开源 网络流量统计_jpcap java流量监控
- 用户控件(UserControl)
- 深度学习 《梯度消失和梯度爆炸》
- 什么是ci/cd_什么是CI / CD?
- 七夕-探探小卡片鸿蒙版
- ajax中异步属性,ajax中的async属性值之同步和异步及同步和异步区别
- android Volley解析之自定义CookieObjectRequest
- linux sed批量更改文件,Linux利用sed批量修改文件名(示例代码)
- Atitit 学习的本质 团队管理与培训的本质 attilax总结 v2
- SQL Server 2016如何创建数据库
- 故障树分析法(FTA)
- pyqt+pyqtgraph+lka(界面制作)
- 自定义配置文件 /etc/httpd/conf.d
- 深度自定义macOS邮件程序的个性签名内容
- 经典逻辑题:猜牌问题——网上的结论是没问题的
- 7z压缩 lzma流式压缩、解压缩的实现 C语言
- 独立版旺店助手源码在线持续更新
- includes() 方法