很多站长朋友们都不太清楚银联接口php,今天小编就来给大家整理银联接口php,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 亲,php银联在线支付,没做过,请求帮助 2、 中国银联在线支付接口php开发怎么做 3、 PHP怎么做银联的支付接口调用 亲,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";
???}
??}
??}
?}
}
银联支付应该是算比较简单的!!
中国银联在线支付接口php开发怎么做对方应该有sdk和demo提供的,支付接口的流程都差不多,包括支付宝,网银,财付通,paypal等流程都一样。
用户下单,收集购物车内产品的总价
拼装支付参数URL跳转进入支付网关进行支付(这里会用到支付网关提供的SDK)
支付成功
支付网关服务器会异步发送支付成功的通知到你的“通知URL”,你对过来的参数进行有效性验证,确保是从支付网关发来的,进行业务逻辑处理,比如设置订单完成标识等操作;
注意这不是“返回URL”,这一步操作前台支付用户不会看到。
网关一般在完成支付后,会自动返回我们的网站,进入网站后提示用户完成支付,并跳转到相应页面即可。
PHP怎么做银联的支付接口调用PHP做银联支付接口调用问题
//在工商支付接口之前要找到工行提供的接口文件级dll文件
//将订单签名数据公钥加密提供给工行指定页面
//组织要签名的数据串
$src="ICBC_PERBANK_B2C1.0.0.0".$infomer["merid"].$infomer["meracct"].$returnaddress."HS".$ddnumber.$amount."0010".$nowtime."0";
$com=new com('ICBCEBANKUTIL.B2CUtil');
$rc=$com->init("c:\WINDOWS\user.crt","c:\WINDOWS\user.crt","c:\WINDOWS\user.key","11111111");
$ssrc=$com->signC($src, strlen($src)); //订单签名数据
$rc=$com->verifySignC($src,strlen($src), $ssrc, strlen($ssrc));
$cert=$com->getCert(1); //商城证书公钥
//将商户证书存储到c:\WINDOWS目录下,然后创建form表单,将指定的数据提交到工行指定的网页中
<!--支付宝支付的接口操作,提交的数据-->
<td width="100"><a href="<{$link}>"><img src="/data/upload/help/202303/13/b7c1294788a50fcca21a5abb5cdb2456.gif" width="90" height="25" border="0"></a></td>
<!--——————————————————-->
<!--工行支付的接口操作,提交的数据-->
<form action="" method="post" name="form_bank">
<input name="interfaceName" type="hidden" value="ICBC_PERBANK_B2C"/>
<input name="interfaceVersion" type="hidden" value="1.0.0.0"/>
<input name="orderid" type="hidden" value="<{$ddnumber}>"/>
<input name="amount" type="hidden" value="<{$amount}>"/>
<input name="curType" type="hidden" value="001"/>
<input name="merID" type="hidden" value="<{$merid}>"/>
<input name="merAcct" type="hidden" value="<{$meracct}>"/>
<input name="verifyJoinFlag" type="hidden" value="0"/>
<input name="notifyType" type="hidden" value="HS"/>
<input name="merURL" type="hidden" value="<{$returnaddress}>"/>
<input name="resultType" type="hidden" value="0"/>
<input name="orderDate" type="hidden" value="<{$nowtime}>"/>
<input name="merSignMsg" type="hidden" value="<{$ssrc}>" />
<input name="merCert" type="hidden" value="<{$cert}>" />
</form>
关于银联接口php的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于银联接口php 银联接口没有设定是什么意思的详细内容...