LNMP环境下开发的银联支付(测试环境)

1.准备条件

    

      a.银联支持API:https://open.unionpay.com/ajweb/help/api

      

      b.选择开发软件包

      图示:

      c.我选择:

        网关支付开发:https://open.unionpay.com/ajweb/product/newProDetail?proId=1

      d.获取测试信息

        第一步:在“我的产品”选择测试 项目

        第二步:在“测试参数”中获取测试数据

        图示:

          

2.代码配置

      1.下载网关开发DEMO

      

       2.修改sdk/acp_sdk.ini 配置文件信息

  • ;后台通知地址,填写接收银联后台通知的地址,必须外网能访问
  • acpsdk.backUrl=http://xxxx/Pay/webUnionPay
  • ;前台通知地址,填写处理银联前台通知的地址,必须外网能访问
  • acpsdk.frontUrl=http://xxxx/Pay/webUnionPay
  • ;;;;;;;;;;;;;;;;;;;;;;;;;入网测试环境签名证书配置 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  • ; 多证书的情况证书路径为代码指定,可不对此块做配置。
  • ; 签名证书路径,必须使用绝对路径,如果不想使用绝对路径,可以自行实现相对路径获取证书的方法;测试证书所有商户共用开发包中的测试签名证书,生产环境请从cfca下载得到。
  • ; 测试环境证书位于assets/测试环境证书/文件夹下,请复制到d:/certs文件夹。生产环境证书由业务部门邮件发送。
  • ; windows样例:
  • acpsdk.signCert.path=D:/certs/acp_test_sign.pfx
  • ; linux样例(注意:在linux下读取证书需要保证证书有被应用读的权限)(后续其他路径配置也同此条说明)
  • ;acpsdk.signCert.path=/SERVICE01/usr/ac_frnas/conf/ACPtest/acp_test_sign.pfx
  • ; 签名证书密码,测试环境固定000000,生产环境请修改为从cfca下载的正式证书的密码,正式环境证书密码位数需小于等于6位,否则上传到商户服务网站会失败
  • acpsdk.signCert.pwd=000000
  • ;;;;;;;;;;;;;;;;;;;;;;;;;;加密证书配置;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  • ; 敏感信息加密证书路径(商户号开通了商户对敏感信息加密的权限,需要对 卡号accNo,pin和phoneNo,cvn2,expired加密(如果这些上送的话),对敏感信息加密使用)
  • acpsdk.encryptCert.path=d:/certs/acp_test_enc.cer
  • ;;;;;;;;;;;;;;;;;;;;;;;;;;验签证书配置;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  • ; 验签中级证书(证书位于assets/测试环境证书/文件夹下,请复制到d:/certs文件夹)
  • acpsdk.middleCert.path=D:/certs/acp_test_middle.cer
  • ; 验签根证书(证书位于assets/测试环境证书/文件夹下,请复制到d:/certs文件夹)
  • acpsdk.rootCert.path=D:/certs/acp_test_root.cer

       3.将demo/中三个文件代码简单修改(本人只保留其中php代码),就实现银联支付流程。

       

       4.在搭建的本地环境中直接访问xxx/Form_6_2_FrontConsume.php。成功发起支付

        发送支付请求:

  • private function webPay($datas){
  • global $UnionPayInfo;
  • $params = array(
  • //以下信息非特殊情况不需要改动
  • 'version' => com\unionpay\acp\sdk\SDKConfig::getSDKConfig()->version, //版本号
  • 'encoding' => 'utf-8', //编码方式
  • 'txnType' => '01', //交易类型
  • 'txnSubType' => '01', //交易子类
  • 'bizType' => '000201', //业务类型
  • 'frontUrl' => com\unionpay\acp\sdk\SDKConfig::getSDKConfig()->frontUrl, //前台通知地址
  • 'backUrl' => com\unionpay\acp\sdk\SDKConfig::getSDKConfig()->backUrl, //后台通知地址
  • 'signMethod' => com\unionpay\acp\sdk\SDKConfig::getSDKConfig()->signMethod, //签名方法
  • 'channelType' => '07', //渠道类型,07-PC,08-手机
  • 'accessType' => '0', //接入类型
  • 'currencyCode' => '156', //交易币种,境内商户固定156
  • //TODO 以下信息需要填写
  • 'merId' => $UnionPayInfo['merId'], //商户代码,请改自己的测试商户号,此处默认取demo演示页面传递的参数
  • 'orderId' => $datas["orderId"], //商户订单号,8-32位数字字母,不能含“-”或“_”,此处默认取demo演示页面传递的参数,可以自行定制规则
  • 'txnTime' => date('YmdHis'), //订单发送时间,格式为YYYYMMDDhhmmss,取北京时间,此处默认取demo演示页面传递的参数
  • 'txnAmt' => $datas["txnAmt"], //交易金额,单位分,此处默认取demo演示页面传递的参数
  • // 订单超时时间。
  • // 超过此时间后,除网银交易外,其他交易银联系统会拒绝受理,提示超时。 跳转银行网银交易如果超时后交易成功,会自动退款,大约5个工作日金额返还到持卡人账户。
  • // 此时间建议取支付时的北京时间加15分钟。
  • // 超过超时时间调查询接口应答origRespCode不是A6或者00的就可以判断为失败。
  • 'payTimeout' => date('YmdHis', strtotime('+15 minutes')),
  • );
  • com\unionpay\acp\sdk\AcpService::sign ( $params );
  • $uri = com\unionpay\acp\sdk\SDKConfig::getSDKConfig()->frontTransUrl;
  • $html_form = com\unionpay\acp\sdk\AcpService::createAutoFormHtml( $params, $uri );
  • echo $html_form;

       5.下载Demo页面底部有个 视频参考(很有用)

20180803UnionPay银联支付的更多相关文章

  1. iOS----支付(微信支付、支付宝支付、银联支付控件集成支付)(转)

    资料 支付宝 //文档idk都包含了安卓.iOS版 银 联 银联官网资料 Demo Demo给了一个订单号,做测试使用,若出现支付失败什么的,可能是已经被别人给支付了,或者是服务器订单过期了 ~ 一. ...

  2. Phonegap 之 iOS银联在线支付(js调用ios端银联支付控件)

    Phonegap项目,做支付的时候,当把网站打包到ios或android端成app后,在app上通过wap调用银联在线存在一个问题: 就是当从银联支付成功后,再从服务器返回到app客户端就很难实现. ...

  3. UnionPay,ChinaPay 最新 银联支付接口C#\Asp.net\MVC 版本

    1.概念普及 一.理解什么是UnionPay.ChinaPay 这两个概念如果搞不清楚,绝对够你瞎折腾一段时间的. UnionPay:中国银联,最大的机构:他本身也提供系统接口但都是B2B的,对于单个 ...

  4. iOS 集成银联支付

    下载地址:https://open.unionpay.com/upload/download/Development_kit85427986.rar 其实我找了半个小时 也不知道怎么就下载好了 这个我 ...

  5. 集成 Union Pay - 银联支付

    作者感言 前面已经把WeChat SDK的支付, AliPay SDK搞得七七八八了, 接下来就是银联支付的Union Pay SDK.最后:如果你有更好的建议或者对这篇文章有不满的地方, 请联系我, ...

  6. iOS第三方支付-银联支付

    #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> #import "UPPayPluginDeleg ...

  7. 李洪强iOS开发支付集成之银联支付

    iOS开发支付集成之银联支付 银联官网在这里,这里能下载SDK或者是看文档.最新的版本写的简单了很多,看文档一直做下去基本上就没问题了. 首先,SDK在这里下载,里面包含需要的库文件和详细的文档. 银 ...

  8. unity3d银联支付出现闪退

    在接入银联SDK的unity3d的游戏中,点击银联支付会出现游戏总是出现闪退现象 ,后来网上有资料说 打开银联的jar包,将里面的res/drawable目录下的文件,拷贝到您的工程的drawable ...

  9. ios中的银联支付

    场景 随着移动互联网的迅猛发展,移动互联已经深深地融入我们的生活.其中,支付方式也是我们生活中经常遇到的情况.所以,在我们的应用中加入支付功能是多么的重要.现在主流的支付接口,一是支付宝类的,一是银联 ...

随机推荐

  1. File GDB API

    bbs一问一答 https://blogs.esri.com/esri/arcgis/2010/12/13/file-geodatabase-api-details/ 下载页面 http://www. ...

  2. Linux c获取时间

    linux c获得时间和设置时间 #include<time.h> //C语言的头文件 #include<stdio.h> //C语言的I/O void main() { ti ...

  3. wxpyhon 对话框

    Python内置了好多定义好了的对话框供我们使用,这里先介绍三个最常用的: 1 Message dialog 2 Text entry 3 Choosing from a list 当然python还 ...

  4. Windows C/C++ 内存泄露检测

    #pragma once #define _CRTDBG_MAP_ALLOC #include<crtdbg.h> #include<stdlib.h> #include< ...

  5. how to create folders in batches

    you need be good at thinking when you see problem. Work experience:when you need to copy web chinese ...

  6. C#转Java之路之三:多线程并发容器即线程安全的容器

    CopyOnWriteArrayList 和 CopyOnWriteArraySet: 是java中两个比较重要的并发容器.适用于读多于写的场景,且集合数据不太大的场合. 特别是CopyOnWrite ...

  7. March 24 2017 Week 12 Friday

    Our lives are brief, that is why it's important to search for meaning. 人生短暂,所以才要寻找它的意义. What can we ...

  8. 命令式编程 vs 声明式编程

    实际上我们绝大多数程序员都是在用命令式风格在编程, 这是和我们的冯诺依曼计算机机构密切相关的. (码农翻身注: 参见文章<冯诺依曼计算机的诞生>) 在一个冯诺依曼计算机中, 最核心的就是C ...

  9. 用C#生成不反复的随机数

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/xiebaochun/article/details/28900237 对于随机数,大家都知道,计算机 ...

  10. [19/03/22-星期五] 异常(Exception)(二)_捕获异常

    一.概念 捕获异常是通过3个关键词来实现的:try-catch-finally.用try来执行一段程序,如果出现异常,系统抛出一个异常,可以通过它的类型来捕捉(catch)并处理它, 最后一步是通过f ...