本文目录一览:
- 1、php做银联接口(upop)前台操作一切顺利,只是后台该如何接收数据,是否还要核对报文,还是是直接处理。
- 2、PHP怎么做银联的支付接口调用
- 3、php网站怎么整合银联网上支付?
- 4、中国银联在线支付接口php开发怎么做
- 5、亲,php银联在线支付,没做过,请求帮助
php做银联接口(upop)前台操作一切顺利,只是后台该如何接收数据,是否还要核对报文,还是是直接处理。
你是做银联接口还是用银联接口开发程序
一般银联会有两种返回方式
一直是直接postback 另一种是异步的 可能不是立即传回 比如每5分钟把所有订单传回来一次
这种方式是为了防止用户付款完毕没有等待页面弹到postback页面就关闭浏览器或者当前页面了
一般在postback页面接受银联返回数据做处理数据以银联返回的为准 存到自己系统的数据库的另一张表 再check数据 然后更新订单状态等 执行其他操作
异步方式传回来的再进行一次检查 补全关闭浏览器等原因导致的特殊情况而没有得到返回的订单
可以对已经保存的订单再次检查 执行过程和之前基本一样
银联一般还会提供一个订单查询接口 根据交易订单号 提交到银联的接口得到返回 比如返回xml数据
通过返回结果可以再次确认订单详细信息 这个查询的结果是可以做银联对账的凭据的如果他们返回的信息错了他们是有责任的.在自己的系统内给客户做关键操作之前最好查询核对一次..
详细的方法请仔细看银联提供的文档..
PHP怎么做银联的支付接口调用
PHP怎么做银联的支付接口调用就很简单了,首先要和银联签合约然后就有现成的技术文档和代码,直接集成就可以了
php网站怎么整合银联网上支付?
大概分几步,
1,你自己的网站把要交易的数据post给银联,
2,银联处理你post过来的数据,然后用户输入一些账号信息,付款。
3,付款后,银联会post交易后的数据给你的网站,(这个地址会在开始你传给银联的的数据里面)
4,你接受银联传输回来的数据,自己处理!
注意的是,回调地址有个后台的,还有个前台的,不要搞混乱了!
中国银联在线支付接口php开发怎么做
对方应该有sdk和demo提供的,支付接口的流程都差不多,包括支付宝,网银,财付通,paypal等流程都一样。
用户下单,收集购物车内产品的总价
拼装支付参数URL跳转进入支付网关进行支付(这里会用到支付网关提供的SDK)
支付成功
支付网关服务器会异步发送支付成功的通知到你的“通知URL”,你对过来的参数进行有效性验证,确保是从支付网关发来的,进行业务逻辑处理,比如设置订单完成标识等操作;
注意这不是“返回URL”,这一步操作前台支付用户不会看到。
网关一般在完成支付后,会自动返回我们的网站,进入网站后提示用户完成支付,并跳转到相应页面即可。
亲,php银联在线支付,没做过,请求帮助
支付接口现在有第三方的支付接口也有银行的支付接口。这里就来介绍php版本银联支付接口开发的方法。
银联支付,首先要注意二重要的部分:
PHP运行环境是5.4.18以上
开了扩展openssl
开发手册上面的列子只做参考,因为基本都是错的。你可以试着去官网下一个demo。。。注意现在银联开发,没有测试密钥提供,只能在正式环境开发
下面是我用ThinkPHP编写的一个支付类
/**
* 银联支付 v0.1
* @auther:Summerdengwz7788@gmail.com;
* @date:20151202
* **/
class NetPayAction extends BaseAction{
//在类初始化方法中,引入相关类库
public function _initialize() {
header("Content-type:text/html;charset=utf-8");
vendor('Netpay.util.common',"",".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 = __APP__."/Index/NetPay/b2cPaySend";
$this-b2cRefundSend = __APP__."/Index/NetPay/b2cRefundSend";
$this-b2cQuerySend = __APP__."/Index/NetPay/b2cQuerySend";
$this-;MerBgUrl = __APP__."/Index/NetPay/MerBgUrl";
$this-MerPageUrl = __APP__."/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 = $thissecurityPropFile;
$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 = $thissecurityPropFile;
$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";
}
}
}
}
}
银联支付应该是算比较简单的!!