php 支付系统(php 实现银联商务H5支付的示例代码)
php 支付系统
php 实现银联商务H5支付的示例代码银联商务H5支付接口文档:文档地址
一:H5支付的接口地址:
1:支付宝支付
测试地址:http://58.247.0.18:29015/v1/netpay/trade/h5-pay
正式地址:https://api-mop.chinaums.com/v1/netpay/trade/h5-pay
2:银联支付
测试地址:http://58.247.0.18:29015/v1/netpay/uac/order
正式地址:https://api-mop.chinaums.com/v1/netpay/uac/order
二:接口需要的基本参数
接口使用的是get传参,直接将接口参数放到接口地址后,此接口是由浏览器直接跳转到接口
(1)authorization
认证方式,直接填入:OPEN-FORM-PARAM
(2)appId
银联商务用户H5支付产品的AppID
(3)timestamp
时间戳,格式为yyyyMMddHHmmss,如20191001121212
(4)nonce
随机数
(5)content
业务内容,为json格式,并且需要进行url编码,内部的具体信息下面介绍
(6)signature
签名,需要进行url编码,具体生成方式如:Base64_Encode(HmacSHA256(appId + timestamp + nonce + SHA256_HEX(content), AppKey))
业务内容content参数内部具体参数说明:
1:requestTimestamp
报文请求时间,格式为yyyy-MM-dd HH:mm:ss,如2019-10-01 12:12:12
2:merOrderId
商户自己生成的订单号,这里注意:我们需要在我们自己生成的订单号前面加上1017前缀
3:mid
银联商务用户H5支付产品的商户号
4:tid
银联商务用户H5支付产品的终端号
5:instMid
业务类型,直接填入:H5DEFAULT
6:totalAmount
支付总金额,单位为分
7:expireTime
订单过期时间,格式为yyyy-MM-dd HH:mm:ss,如2019-10-02 12:12:12
8:notifyUrl
支付结果通知地址
9:returnUrl
网页跳转地址
三:H5支付的支付宝支付实例
|
$appId = '10037e6f6a4e6da4016a670fd4530012' ; $appKey = 'f7a74b6c02ae4e1e94aaba311c04acf2' ; $mid = '898310148160568' ; $tid = '88880001' ; //业务内容 $time = time(); $content = [ 'requestTimestamp' => date ( 'Y-m-d H:i:s' , $time ), //报文请求时间 'merOrderId' => '1017' . date ( 'YmdHis' ), //商户订单号 'mid' => $mid , //商户号 'tid' => $tid , //终端号 'instMid' => 'H5DEFAULT' , //业务类型 'totalAmount' => '1' , //支付总金额 'expireTime' => date ( 'Y-m-d H:i:s' , strtotime ( '+1 day' , $time )), //过期时间 'notifyUrl' => '' , //支付通知地址 'returnUrl' => '' //网页跳转地址 ]; $timestamp = date ( 'YmdHis' , $time ); //随机数 $str = md5(uniqid(mt_rand(), true)); $uuid = substr ( $str , 0, 8) . '-' ; $uuid .= substr ( $str , 8, 4) . '-' ; $uuid .= substr ( $str , 12, 4) . '-' ; $uuid .= substr ( $str , 16, 4) . '-' ; $uuid .= substr ( $str , 20, 12); $nonce = $uuid ; //签名 $hash = bin2hex(hash( 'sha256' , json_encode( $content ), true)); $hashStr = $appId . $timestamp . $nonce . $hash ; $signature = base64_encode ((hash_hmac( 'sha256' , $hashStr , $appKey , true))); //$appKey银联商户H5支付产品的AppKey $data = [ 'timestamp' => $timestamp , //时间戳 'authorization' => 'OPEN-FORM-PARAM' , //认证方式 'appId' => $appId , //APPID 'nonce' => $nonce , //随机数 'content' => urlencode(json_encode( $content )), //业务内容 'signature' => urlencode( $signature ), //签名 ]; //接口返回信息 //支付宝:http://58.247.0.18:29015/v1/netpay/trade/h5-pay //银联在线无卡:http://58.247.0.18:29015/v1/netpay/qmf/h5-pay //银联:http://58.247.0.18:29015/v1/netpay/uac/order $options = '' ; foreach ( $data as $key => $value ) { $options .= $key . '=' . $value . '&' ; } $options = rtrim( $options , '&' ); //存在转义字符,那么去掉转义 if (get_magic_quotes_gpc()){ $options = stripslashes ( $options ); } $url = 'http://58.247.0.18:29015/v1/netpay/trade/h5-pay?' . $options ; |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:https://segmentfault.com/a/1190000020661486
- 自己在做项目过程中的php知识(PHP+Oracle本地开发环境搭建方法详解)
- php 处理html表单(PHP使用HTML5 FormData对象提交表单操作示例)
- php守护进程(什么是PHP7中的孤儿进程与僵尸进程)
- php经典算法大全(php菜单/评论数据递归分级算法的实现方法)
- linux下如何启动phpstudy面板(详解phpstudy linux web面板小皮面板V0.2版本正式发布)
- php 数据库查询并写入(PHP实现单条sql执行多个数据的insert语句方法)
- php工作原理及功能(php设计模式之适配器模式原理、用法及注意事项详解)
- thinkphp5.1插件实现(Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例)
- thinkphp分页效果怎样(thinkphp5+layui实现的分页样式示例)
- php mq使用方法(PHP使用ActiveMQ实现消息队列的方法详解)
- php对象和类(PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例)
- php 获取证书列表(用PHP做了一个领取优惠券活动的示例代码)
- 学会php的路线图(PHP进阶学习之Geo的地图定位算法详解)
- php怎样创建新文件详情(php文件后缀不强制为.php的实操方法)
- php提交表单验证表(php实现的表单验证类完整示例)
- php如何异步操作(php链式操作的实现方式分析)
- 今天要吃什么(今天要吃什么菜)
- 三杨之一 南杨 杨溥 安贞履节,酿醴调羹,宰相之气(三杨之一南杨杨溥)
- 今天会下雨吗(今天会下雨吗小说)
- 追连续剧,品古今联4 明代三杨,联妙诗佳(追连续剧品古今联4)
- 三杨 共辅四朝帝王,构建明帝国内阁行政圈(三杨共辅四朝帝王)
- 红色文化进国企(红色文化进国企)
热门推荐
- vue怎么在中间加图片(Vue实现多图添加显示和删除)
- python图片模板匹配(python实现简单图片物体标注工具)
- pythonopencv自定义阈值算法(理想高通滤波实现Python opencv示例)
- python协程使用教程(对Python协程之异步同步的区别详解)
- 云服务器设置方法(怎么配置云服务器)
- css代码大全登录界面(Div+CSS仿微信公众平台登录页面)
- 利用xampp搭建服务器(xampp集成环境怎样使用MySQL数据库)
- 阿里云对象存储oss请求次数(阿里云服务器本地上传到OSS对象存储节点)
- sqlserver常用的字符串函数(SqlServer 获取字符串中小写字母的sql语句)
- C# Directory类的操作