很多站长朋友们都不太清楚银联接口文档PHP,今天小编就来给大家整理银联接口文档PHP,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 PHP怎么做银联的支付接口调用 2、 php 银联在线支付接口怎么写 3、 中国银联在线支付接口php开发怎么做 4、 php做银联接口(upop)前台操作一切顺利,只是后台该如何接收数据,是否还要核对报文,还是是直接处理。 5、 亲,php银联在线支付,没做过,请求帮助 6、 怎么申请银联在线支付接口 PHP怎么做银联的支付接口调用PHP怎么做银联的支付接口调用就很简单了,首先要和银联签合约然后就有现成的技术文档和代码,直接集成就可以了
php 银联在线支付接口怎么写我做过支付宝和网银在线的,原理都差不多吧,两个页面,一个返回页面,用来提示结果,一个服务器异步通知页面,用来处理一些东西。
百度 青春华航,我博客,可以联系我
中国银联在线支付接口php开发怎么做对方应该有sdk和demo提供的,支付接口的流程都差不多,包括支付宝,网银,财付通,paypal等流程都一样。
用户下单,收集购物车内产品的总价
拼装支付参数URL跳转进入支付网关进行支付(这里会用到支付网关提供的SDK)
支付成功
支付网关服务器会异步发送支付成功的通知到你的“通知URL”,你对过来的参数进行有效性验证,确保是从支付网关发来的,进行业务逻辑处理,比如设置订单完成标识等操作;
注意这不是“返回URL”,这一步操作前台支付用户不会看到。
网关一般在完成支付后,会自动返回我们的网站,进入网站后提示用户完成支付,并跳转到相应页面即可。
php做银联接口(upop)前台操作一切顺利,只是后台该如何接收数据,是否还要核对报文,还是是直接处理。你是做银联接口还是用银联接口开发程序
一般银联会有两种返回方式
一直是直接postback 另一种是异步的 可能不是立即传回 比如每5分钟把所有订单传回来一次
这种方式是为了防止用户付款完毕没有等待页面弹到postback页面就关闭浏览器或者当前页面了
一般在postback页面接受银联返回数据做处理数据以银联返回的为准 存到自己系统的数据库的另一张表 再check数据 然后更新订单状态等 执行其他操作
异步方式传回来的再进行一次检查 补全关闭浏览器等原因导致的特殊情况而没有得到返回的订单
可以对已经保存的订单再次检查 执行过程和之前基本一样
银联一般还会提供一个订单查询接口 根据交易订单号 提交到银联的接口得到返回 比如返回xml数据
通过返回结果可以再次确认订单详细信息 这个查询的结果是可以做银联对账的凭据的如果他们返回的信息错了他们是有责任的.在自己的系统内给客户做关键操作之前最好查询核对一次..
详细的方法请仔细看银联提供的文档..
亲,php银联在线支付,没做过,请求帮助支付接口现在有第三方的支付接口也有银行的支付接口。这里就来介绍php版本银联支付接口开发的方法。
银联支付,首先要注意二重要的部分:
PHP运行环境是5.4.18以上
开了扩展openssl
开发手册上面的列子只做参考,因为基本都是错的。你可以试着去官网下一个demo。。。注意现在银联开发,没有测试密钥提供,只能在正式环境开发
下面是我用ThinkPHP编写的一个支付类
/**
*?银联支付?v0.1
*?@auther:Summer<dengwz7788@gmail测试数据>;
*?@date:20151202
*?**/
class?NetPayAction?extends?BaseAction{
//在类初始化方法中,引入相关类库
public?function?_initialize()?{
?header("Content-type:text/html;charset=utf-8");
?vendor('Netpay.util测试数据mon',"",".php");?//导入加密核心文件夹
?vendor('Netpay.util.SecssUtil',"",".class.php");?//导入加密核心文件夹
?vendor('Netpay.util.Settings_INI',"",".php");?//导入加密核心文件夹
?vendor('Netpay.util.Settings',"",".php");?//导入加密核心文件夹
?$this->securityPropFile=?$_SERVER['DOCUMENT_ROOT']?.?"/ThinkPHP/Extend/Vendor/Netpay/config/security.properties";?//谁知道这是啥,反正他们要我加的
?$this->b2cPaySend?=?."/Index/NetPay/b2cPaySend";
?$this->b2cRefundSend?=?."/Index/NetPay/b2cRefundSend";
?$this->b2cQuerySend?=?."/Index/NetPay/b2cQuerySend";
?$this->;MerBgUrl?=?."/Index/NetPay/MerBgUrl";
?$this->MerPageUrl?=?."/Index/NetPay/MerPageUrl";
}
public?function?index()
{
?$paramArray=array?(
???'MerId'?=>?'商户号',
???'MerOrderNo'?=>?'0000001944663232',
???'OrderAmt'?=>?'1',
???'TranDate'?=>?'20151219',
??'TranTime'?=>'171248',
??'TranType'?=>?'0001',
??'BusiType'?=>'0001',
??'Version'?=>?'20140728',
??'CurryNo'?=>?'CNY',
??'AccessType'?=>;?'0',
??'CommodityMsg'?=>?'测试商品1号',
??'MerPageUrl'?=>?$this->MerBgUrl,
??'MerBgUrl'?=>$this->MerPageUrl,
??'MerResv'?=>?'MerResv',
?);
?if?(count($paramArray)?>0)?{
??$dispatchUrl?=?$this->b2cPaySend;
??$transResvedJson?=?array();
??$cardInfoJson?=?array();
??$sendMap?=?array();
???foreach?($paramArray?as?$key?=>?$value)?{
???if?(isEmpty($value))?{
????continue;
???}
???if?(startWith($key,?"trans_"))?{
?????$key?=?substr($key,?strlen("trans_"));
????????$transResvedJson[$key]?=?$value;
???}?else
?????if?(startWith($key,?"card_"))?{
???????$key?=?substr($key,?strlen("card_"));
???????$cardInfoJson[$key]?=?$value;
?????}?else?{
???????$sendMap[$key]?=?$value;
?????}
??}
??$transResvedStr?=?null;
??$cardResvedStr?=?null;
??if?(count($transResvedJson)?>0)?{
???$transResvedStr?=?json_encode($transResvedJson);
??}
??if?(count($cardInfoJson)?>?0)?{
???$cardResvedStr?=?json_encode($cardInfoJson);
??}
?$secssUtil?=?new?SecssUtil();
?if?(!?isEmpty($transResvedStr))?{
??$transResvedStr?=?$secssUtil->decryptData($transResvedStr);
??$sendMap["TranReserved"]?=?$transResvedStr;
??}
?if?(!?isEmpty($cardResvedStr))?{
???$cardResvedStr?=?$secssUtil->decryptData($cardResvedStr);
???$sendMap["card_"]?=?$cardResvedStr;
??}
??$securityPropFile?=?$this>securityPropFile;
??$secssUtil->init($securityPropFile);
??$secssUtil->sign($sendMap);
??$sendMap["Signature"]?=?$secssUtil->getSign();
??$_SESSION?=?$sendMap;
??header("Location:"?.?$dispatchUrl);
?}
}
public?function?b2cPaySend(){
??layout(false);
??$settings?=?new?Settings_INI();
??$settings->oad($this->securityPropFile);
??$pay_url?=?"";
??$html?=?"<form?name='payment'?action='{$pay_url}'?method='POST'?target='_blank'>;";
??$params?=?"TranReserved;MerId;MerOrderNo;OrderAmt;CurryNo;TranDate;SplitMethod;BusiType;MerPageUrl;MerBgUrl;SplitType;MerSplitMsg;PayTimeOut;MerResv;Version;BankInstNo;CommodityMsg;Signature;AccessType;AcqCode;OrderExpiryTime;TranType;RemoteAddr;Referred;TranTime;TimeStamp;CardTranData";
??foreach?($_SESSION?as?$k?=>$v)?{
???if?(strstr($params,?$k))?{
?????$html?.=?"<input?type='hidden'?name?=?'"?.?$k?.?"'?value?='"?.?$v?.?"'/>";
???}
??}
????$html?.=?"<nput?type='button'?type='hidden'?value='提交订单'?>";
????$html?.=?"<;/from>";
????$this->html?=?$html;
????$this->display();
}
public?function?pgReturn(){
?if?($_POST)?{
???if?(count($_POST)?>?0)?{
????$secssUtil?=?new?SecssUtil();
????$securityPropFile?=?$this>securityPropFile;
????$secssUtil->init($securityPropFile);
????$text?=?array();
????foreach($_POST?as?$key=>$value){
??????$text[$key]?=?urldecode($value);
????}
???if?($secssUtil->verify($text))?{
????????????//支付成功
?????$_SESSION["VERIFY_KEY"]?=?"success";
???}?else?{
????//支付失败
?????$_SESSION["VERIFY_KEY"]?=?"fail";
???}
??}
??}
?}
}
银联支付应该是算比较简单的!!
怎么申请银联在线支付接口1、五证齐全:营业执照、税务登记证(国地税两证)、组织机构代码证、银行开户许可证。
2、ICP备案:公司网站进行ICP备案。这个应该不是问题。上面两项通过之后基本上银行会和公司来进行协议盖章了,也算是合同,就说明已经生效了。
3、签订完合同盖完章后基本上就会给商户下发接口文件,接口文件有多种语言,asp,java,.net等根据自己网站语言需要来索要即可。
4、测试开通可以找相关接口开发人员及进行接口整合对接到公司网站上面即可进行交易了。
扩展资料
异常应答说明
1、不返回报文体的情况:
版本号,交易类型、子类,签名方法,签名值等关键域未上送,返回“Invalid request.”; 交易类型和请求地址校验有误,返回“Invalid request URI.”
2、返回全部的请求报文,附加应答码和应答描述(包括的应答码有:01、02、03、10、11、32):
验证签名失败;
报文格式错(包含,必填域缺失,上送银联报文未定义的域,报文域的格式非法,交易时间超出范围);
签名失败;超时等其他系统异常
参考资料来源:中国银联-在线网关支付
关于银联接口文档PHP的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于银联接口文档PHP 银联支付接口文档的详细内容...