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守护进程(什么是PHP7中的孤儿进程与僵尸进程)
- php面向对象3大特征(PHP面向对象程序设计重载overloading操作详解)
- php生成json信息(php使用json-schema模块实现json校验示例)
- phpstudy使用教程(phpstudy是什么)
- php实现redis核心代码(PHP结合Redis+MySQL实现冷热数据交换应用案例详解)
- php根据名称规则判断文件是否存在(PHP中上传文件打印错误错误类型分析)
- php多维数组怎么转换json(php实现的数组转xml案例分析)
- phpstudy创建网站教程(使用phpstudy中域名管理菜单创建本地站点图文)
- phpfpm优化方法(php-fpm超时时间设置request_terminate_timeout资源问题分析)
- phpstudy中apache到期如何修改(phpStudy找不到Apache“服务名” 解决方法)
- apachephp环境搭建(apache集成php7.3.5的详细步骤)
- python与php(解决Python3 被PHP程序调用执行返回乱码的问题)
- php设计模式学习(PHP设计模式之PHP迭代器模式讲解)
- php扩展库使用教程(php使用pecl方式安装扩展操作示例)
- thinkphp怎么整合微信支付(ThinkPHP框架实现的微信支付接口开发完整示例)
- php构成方法的关键字是(PHP中的self关键字详解)
- 对你思念入骨的女人,跟你见面时会有这几种表现,藏都藏不住(对你思念入骨的女人)
- 纳兰性德绝美作,一场重逢,成就最后一首称得上惊艳的《如梦令》(纳兰性德绝美作)
- 如何快速赚钱(如何快速赚钱方法真实有效)
- 这里输入关键词(如何输入关键词)
- 熊猫中国国宝(熊猫国宝酒53酱香)
- 春节会放假几天(春节会放假吗)
热门推荐
- h5页面快速制作方法(h5网页水印SDK的实现代码示例)
- python学生信息管理系统教程(学生信息管理系统Python面向对象版)
- sql server中dense_rank和row_number的区别
- centos7宝塔面板离线安装(linux centos 宝塔面板和安全狗安装过程记录)
- 学python从零基础到开发游戏(python开发游戏的前期准备)
- CSS网页布局的几个建议
- 云锁服务器怎么设置安全(SugarHosts云服务器如何开启访问端口和使用安全组)
- sql设计数据库过程文字详述(Sql Server 数据库中调用dll文件的过程)
- Docker 部署单机版 Pulsar 和集群架构 Redis(开发神器)的方法(Docker 部署单机版 Pulsar 和集群架构 Redis开发神器的方法)
- 云服务器可以搭建几个网站(使用云服务器搭建网站的注意事项)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9