1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 银联支付接口+支付宝接口统一支付功能

银联支付接口+支付宝接口统一支付功能

时间:2023-07-16 23:14:30

相关推荐

银联支付接口+支付宝接口统一支付功能

这个demo发出来已经比较久了,后面发现陆续还有同学找到我,我这里说下现在的情况。

这个接口中的银联支付接口实际也是走的支付宝接口,不需要单独申请银联了。但是!支付宝的这个接口已经下架了,以前已经接入的此接口还可以照常使用,新接入的不能再使用银联接口。这个demo发出来已经比较久了,后面发现陆续还有同学找到我,我这里说下现在的情况。

这个接口中的银联实际也是走的支付宝接口,不需要单独申请银联了。但是!支付宝的这个接口已经下架了,以前已经接入的此接口还可以照常使用,新接入的不能再使用银联接口。也就是说本demo可能已经失效(主要是银联那部分,纯支付宝的不知道还能不能用,现在没测试),大家作为学习研究吧~

===================

这个model将支付宝和银行支付统一到一起,摆脱了对SDK的依赖,我尽量封在了

PayAction:<?php classPayActionextendsAction{//支付跳转 functiondo_pay(){//构造参数 $payment=array( 'money'=>12, 'deal_name'=>'充值', //支付银行,对应银行ID我在后面贴出来 'bank_id'=>'', 'notice_sn'=>'093456', ); echoD('Payment')->get_payment_code($payment); } //支付结果同步回调 functionresponse(){$request=$_GET; unset($request['_URL_']); $pay_res=D('Payment')->notify($request);

if($pay_res['status']){//支付成功业务逻辑 }else{$this->error('支付失败'); } } //支付结果异步回调 functionnotify(){$request=$_POST; $pay_res=D('Payment')->notify($request);

if($pay_res['status']){//支付成功业务逻辑 echo'success'; }else{echo'fail'; } } }

//银行ID $bank_id=array( 'ICBCB2C'=>'中国工商银行', 'CMB'=>'招商银行', 'CCB'=>'中国建设银行', 'ABC'=>'中国农业银行', 'SPDB'=>'上海浦东发展银行', 'SDB'=>'深圳发展银行', 'CIB'=>'兴业银行', 'BJBANK'=>'北京银行', 'CEBBANK'=>'中国光大银行', 'CMBC'=>'中国民生银行', 'CITIC'=>'中信银行', 'GDB'=>'广东发展银行', 'SPABANK'=>'平安银行', 'BOCB2C'=>'中国银行', 'COMM'=>'交通银行', 'ALIPAY'=>'支付宝', );

?> 复制代码 出现调试错误一般是参数传错了

1、配置model里面的config,model里其他东西根本不用看

2、构造请求参数$payment

money、deal_name和订单号notice_sn是你随便给的,bank_id在页面用 radio传过来的其值是我给的那些银行ID,比如工行就是ICBCB2C

PaymentModel:<?php

classPaymentModelextendsModel{private$config; function_initialize(){$this->config=array( 'alipay_partner'=>C('ALIPAY_PARTNER'), 'alipay_account'=>C('ALIPAY_ACCOUNT'), 'alipay_key'=>C('ALIPAY_KEY'), 'return_url'=>'http://'.HOST_NAME.U('Pay/response'), 'notify_url'=>'http://'.HOST_NAME.U('Pay/notify'), ); } functionget_payment_code($form){$link=$form['bank_id']=='ALIPAY'?$this->alipay_link($form):$this->bank_link($form); return$link; } //银联接连 functionbank_link($form){$payment_notice=array( 'money'=>$form['money'], 'deal_name'=>$form['order_name'], 'bank_id'=>$form['bank_id'], 'notice_sn'=>$form['order_sn'], ); $money=round($payment_notice['money'],2); $payment_info=$this->config;

$subject=$payment_notice['deal_name']; $data_return_url=$payment_info['return_url']; $data_notify_url=$payment_info['notify_url'];

$service='create_direct_pay_by_user'; /*银行类型*/ $bank_type=$payment_notice['bank_id']; $parameter=array( 'service'=>$service, 'partner'=>$payment_info['alipay_partner'], //'partner'=>ALIPAY_ID, '_input_charset'=>'utf-8', 'notify_url'=>$data_notify_url, 'return_url'=>$data_return_url, /*业务参数*/ 'subject'=>$subject, 'out_trade_no'=>$payment_notice['notice_sn'], 'price'=>$money, 'quantity'=>1, 'payment_type'=>1, /*物流参数*/ 'logistics_type'=>'EXPRESS', 'logistics_fee'=>0, 'logistics_payment'=>'BUYER_PAY_AFTER_RECEIVE', 'extend_param'=>'changjianghu', /*买卖双方信息*/ 'seller_email'=>$payment_info['alipay_account'], 'defaultbank'=>$bank_type, 'payment'=>'bankPay' );

$parameter=$this->argSort($parameter);

$param=''; $sign='';

foreach($parameterAS$key=>$val){$param.="$key=".urlencode($val)."&"; $sign.="$key=$val&"; }

$param=substr($param,0,-1); $sign=substr($sign,0,-1).$payment_info['alipay_key']; $sign_md5=md5($sign);

$payLinks='<formtarget="_blank"action="/cooperate/gateway.do?'.$param.'&sign='.$sign_md5.'&sign_type=MD5"id="jumplink"method="post">正在连接支付接口...</form>'; $payLinks.='<scripttype="text/javascript">document.getElementById("jumplink").submit();</script>';

return$payLinks; } //支付宝链接 functionalipay_link($form){$payment_notice=array( 'money'=>$form['money'], 'deal_name'=>$form['order_name'], 'bank_id'=>$form['bank_id'], 'notice_sn'=>$form['order_sn'], ); $money=round($payment_notice['money'],2); $payment_info=$this->config;

$subject=$payment_notice['deal_name']; $data_return_url=$payment_info['return_url']; $data_notify_url=$payment_info['notify_url']; $parameter=array( 'service'=>'create_direct_pay_by_user', 'partner'=>$payment_info['alipay_partner'], //'partner'=>ALIPAY_ID, '_input_charset'=>'utf-8', 'notify_url'=>$data_notify_url, 'return_url'=>$data_return_url, /*业务参数*/ 'subject'=>$subject, 'out_trade_no'=>$payment_notice['notice_sn'], 'price'=>$money, 'quantity'=>1, 'payment_type'=>1, /*物流参数*/ 'logistics_type'=>'EXPRESS', 'logistics_fee'=>0, 'logistics_payment'=>'BUYER_PAY_AFTER_RECEIVE', 'extend_param'=>'changjianghu', /*买卖双方信息*/ 'seller_email'=>$payment_info['alipay_account'] ); //print_r($parameter);exit; $parameter=$this->argSort($parameter);

$param=''; $sign='';

foreach($parameterAS$key=>$val) {$param.="$key=".urlencode($val)."&"; $sign.="$key=$val&"; }

$param=substr($param,0,-1); $sign=substr($sign,0,-1).$payment_info['alipay_key']; $sign_md5=md5($sign);

$payLinks='<formaction="/cooperate/gateway.do?'.$param.'&sign='.$sign_md5.'&sign_type=MD5"id="jumplink"method="post">正在连接支付接口...</form>'; $payLinks.='<scripttype="text/javascript">document.getElementById("jumplink").submit();</script>'; return$payLinks; }

/*结果*/ functionnotify($request){$return_res=array( 'info'=>'', 'status'=>false, ); $payment=$this->config; $request=$this->argSort($request);

/*检查数字签名是否正确*/ $isSign=$this->getSignVeryfy($request); if(!$isSign){//签名验证失败 $return_res['info']='签名验证失败'; return$return_res; }

if($request['trade_status']=='TRADE_SUCCESS'||$request['trade_status']=='TRADE_FINISHED'||$request['trade_status']=='WAIT_SELLER_SEND_GOODS'||$request['trade_status']=='WAIT_BUYER_CONFIRM_GOODS'){$return_res['status']=true; } return$return_res; }

//获取返回时的签名验证结果 functiongetSignVeryfy($para_temp){//除去待签名参数数组中的空值和签名参数 $para_filter=$this->paraFilter($para_temp); //对待签名参数数组排序 $para_sort=$this->argSort($para_filter); //把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串 $prestr=$this->createLinkstring($para_sort); $isSgin=false; $isSgin=$this->md5Verify($prestr,$para_temp['sign'],$this->config['alipay_key']); return$isSgin; } //验证签名 functionmd5Verify($prestr,$sign,$key){$prestr=$prestr.$key; $mysgin=md5($prestr);

if($mysgin==$sign){returntrue; } else{returnfalse; } } //把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串 functioncreateLinkstring($para){$arg=""; while(list($key,$val)=each($para)){$arg.=$key."=".$val."&"; } //去掉最后一个&字符 $arg=substr($arg,0,count($arg)-2); //如果存在转义字符,那么去掉转义 if(get_magic_quotes_gpc()){$arg=stripslashes($arg);} return$arg; } //除去数组中的空值和签名参数 functionparaFilter($para){$para_filter=array(); while(list($key,$val)=each($para)){if($key=="sign"||$key=="sign_type"||$val=="")continue; else$para_filter[$key]=$para[$key]; } return$para_filter; } //对数组排序 functionargSort($para){ksort($para); reset($para); return$para; } }

?> 复制代码 HTML模板:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="/1999/xhtml"> <head> <metaname="Generator"/> <metahttp-equiv="X-UA-Compatible"content="IE=EmulateIE7"/> <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/> <title>傲付宝-专业第三方支付接口申请开发</title> <metaname="keywords"content="SEO关键词"/> <metaname="description"content="SEO描述"/> </head>

<body> <divclass="header"> <divclass="wrap"> <divclass="logof_l"> <divclass="link">

<a href="">第三方支付平台</a> <a href="">聚合支付平台</a> <a href="">扫码支付平台</a> <a href="">二维码支付平台</a>

</div>

</div> <ulclass="main_navf_l"> <li> <span> <ahref="/"target=""title="首页">首页</a> </span> </li> <li> <span> <ahref="/deals"target=""title="音乐众筹">音乐众筹</a> </span> </li> <li> <span> <ahref="/seckill"target=""title="秒杀">秒杀</a> </span> </li> <li> <span> <ahref="/help-intro"target=""title="帮助中心">帮助中心</a> </span> </li> <listyle="position:relative;"> <span> <aclass="start_project_action"style="color:#f60;"href="/project-add"title="发起众筹">发起众筹</a> </span> <span> <aclass="start_project_action"style="color:#690;"href="/seckill-add"title="发起秒杀">发起秒杀</a> </span> </li> </ul> <divclass="f_r"> <divclass="login_tip"> <ahref="#"id="mymessage">消息</a>| <ahref="#"id="mycenter"style="color:#5b8902;">Badri</a>| <ahref="/user-loginout"title="登出"id="user_login_out">登出</a> <divid="mymessage_drop"style="position:absolute;display:none;"> <divclass="drop_box"> <span><ahref="/news-fav">关注动态</a></span> <span><ahref="/comment">查看评论</a></span> <span><ahref="/message">查看私信</a></span> <span><ahref="/notify">查看通知</a></span>

</div> </div> <divid="mycenter_drop"style="position:absolute;display:none;"> <divclass="drop_box"> <span><ahref="/home/id-7">我的主页</a></span> <span><ahref="/account">项目管理</a></span> <span><ahref="/project/act-add">发起项目</a></span> <span><ahref="/seckill/act-seckill_list">秒杀管理</a></span> <span><ahref="/seckill/act-add">发起秒杀</a></span> <span><ahref="/settings">个人设置</a></span>

</div> </div> </div> <formaction="/deals"method="get"id="header_search_form"> <divclass="header_seach"> <inputtype="button"value=""class="seach_submit"id="header_submit"/> <inputtype="text"id="header_keyword"name="k"value="搜索你想要的..."class="seach_text"> <inputtype="hidden"name="redirect"value="1"/> </div> </form> </div>

</div> </div> <divclass="blank"></div>

<divclass="shadow_bg"> <divclass="wrapwhite_box""> <divclass="page_title"> 专为音乐人设计的便携式监听音箱iLoud<divclass="support_price"> <fontclass="delivery_fee"> 支持金额¥1990.00 邮费:¥15.00 </font> 应付总额<span>¥2002.00</span>元 </div> </div> <divclass="switch_nav"style="height:1px;"></div> <divclass="blank"></div> <divclass="public_left"> <formclass="pay_form"action="/kcart-kgo_pay"target="_blank"method="post"> <divclass="form_row"> <divclass="blank15"></div> <labelclass="title">使用余额支付:</label> <inputtype="text"class="textbox"value="0"name="credit"style="width:100px;"/> <labelclass="title"style="padding-left:10px;">可用余额:¥82,800.00</label> <inputtype="hidden"name="max_credit"value="82800.0000"/> <inputtype="hidden"name="max_pay"value="2002.00"/> <divclass="blank15"></div> </div> <div><styletype='text/css'>.alibank_types{float:left;display:block;background:url(/system/payment/AlipayBank/banklogo.gif);font-size:0px;width:150px;height:10px;text-align:left;padding:15px0px;}.bk_typeCMB{background-position:15px-444px;}.bk_typeICBCB2C{background-position:15px-404px;}.bk_typeCCB{background-position:15px-84px;}.bk_typeABC{background-position:15px-44px;}.bk_typeSPDB{background-position:15px-364px;}.bk_typeSDB{background-position:15px-324px;}.bk_typeCIB{background-position:15px-484px;}.bk_typeBJBANK{background-position:15px-610px;}.bk_typeCEBBANK{background-position:15px-124px;}.bk_typeCMBC{background-position:15px-164px;}.bk_typeCITIC{background-position:15px-284px;}.bk_typeGDB{background-position:15px-244px;}.bk_typeSPABANK{background-position:15px-903px;}.bk_typeBOCB2C{background-position:15px-939px;}.bk_typeCOMM{background-position:15px-204px;}.bk_typeICBCBTB{background-position:15px-782px;}.bk_typePSBC-DEBIT{background-position:15px-524px;}</style><scripttype='text/javascript'>functionset_bank(bank_id){$("input[name='bank_id']").val(bank_id);}</script><labelclass='alibank_typesbk_typeICBCB2C'><inputtype='radio'name='payment'value='24'rel='ICBCB2C'onclick='set_bank("ICBCB2C")'/></label><labelclass='alibank_typesbk_typeCMB'><inputtype='radio'name='payment'value='24'rel='CMB'onclick='set_bank("CMB")'/></label><labelclass='alibank_typesbk_typeCCB'><inputtype='radio'name='payment'value='24'rel='CCB'onclick='set_bank("CCB")'/></label><labelclass='alibank_typesbk_typeABC'><inputtype='radio'name='payment'value='24'rel='ABC'onclick='set_bank("ABC")'/></label><labelclass='alibank_typesbk_typeSPDB'><inputtype='radio'name='payment'value='24'rel='SPDB'onclick='set_bank("SPDB")'/></label><labelclass='alibank_typesbk_typeSDB'><inputtype='radio'name='payment'value='24'rel='SDB'onclick='set_bank("SDB")'/></label><labelclass='alibank_typesbk_typeCIB'><inputtype='radio'name='payment'value='24'rel='CIB'onclick='set_bank("CIB")'/></label><labelclass='alibank_typesbk_typeBJBANK'><inputtype='radio'name='payment'value='24'rel='BJBANK'onclick='set_bank("BJBANK")'/></label><labelclass='alibank_typesbk_typeCMBC'><inputtype='radio'name='payment'value='24'rel='CMBC'onclick='set_bank("CMBC")'/></label><labelclass='alibank_typesbk_typeCITIC'><inputtype='radio'name='payment'value='24'rel='CITIC'onclick='set_bank("CITIC")'/></label><labelclass='alibank_typesbk_typeGDB'><inputtype='radio'name='payment'value='24'rel='GDB'onclick='set_bank("GDB")'/></label><labelclass='alibank_typesbk_typeSPABANK'><inputtype='radio'name='payment'value='24'rel='SPABANK'onclick='set_bank("SPABANK")'/></label><labelclass='alibank_typesbk_typeBOCB2C'><inputtype='radio'name='payment'value='24'rel='BOCB2C'onclick='set_bank("BOCB2C")'/></label><labelclass='alibank_typesbk_typeCOMM'><inputtype='radio'name='payment'value='24'rel='COMM'onclick='set_bank("COMM")'/></label><labelclass='alibank_typesbk_typePSBC-DEBIT'><inputtype='radio'name='payment'value='24'rel='PSBC-DEBIT'onclick='set_bank("PSBC-DEBIT")'/></label><inputtype='hidden'name='bank_id'/><divclass='blank'></div></div><div><divstyle='float:left;'><inputtype='radio'name='payment'value='25'/>支付宝即时到帐支付:</div><divstyle='float:left;padding-left:10px;'><imgsrc='/public/attachment/06/20/13/53a3cb3a6be08.jpg'/></div><divstyle='float:left;padding-left:10px;'></div><divclass='blank'></div></div> <divclass="blank"></div> <div> <divclass="ui-buttongreen"rel="green"> <div> <span>确定,去付款</span> </div> </div> <inputtype="hidden"id="back_url"value="/seckill-seckill_goods"/> <inputtype="hidden"value=""name="memo"/> <inputtype="hidden"value="65"name="id"/> <inputtype="hidden"value="14"name="consignee_id"/> <inputtype="hidden"value="1"name="ajax"/> <divclass="blank15"></div> </div> </form> </div><!--left--> <divclass="public_right"> <divclass="deal_item_box"> <divclass="deal_content_box"> <divclass="blank"></div> <ahref="/deal-show/id-15"class="deal_title"title="专为音乐人设计的便携式监听音箱iLoud">专为音乐人设计的便携式监听音箱iLoud</a> <divclass="blank"></div> <ahref="/home/id-61">百音堂</a>

</div> <divclass="deal_item_dash"style="position:relative;"> <divclass="seckill_status"></div> </div> <divclass="deal_content_box"> <divclass="ui-progress"> <spanstyle="width:90%;"></span> </div> <divclass="blank"></div> <divclass="div3"><spanclass="num">90%</span><spanclass="til">剩余</span></div> <divclass="div3"style="text-align:center;"><spanclass="num"><font>9</font>份</span><spanclass="til">剩余份数</span></div> <divclass="div3"style="text-align:right;"><spanclass="num"><font>1990</font>元</span><spanclass="til">价格</span></div> <divclass="blank1"></div> </div> </div> </div> <divclass="blank"></div> </div> </div> <divclass="blank"></div>

<divstyle=""id="share_window_bg"class="wap_bg"></div> <divclass="popupt_share"id="share_window"style="display:none"> <divclass="tag_adfodis_wap"> <divclass="vip_link"> <dl> <h3>来自唱江湖的信息:</h3> <ddclass="vip_link_btn"id="vip_link_btn"><!----></dd> </dl> </div> <divclass="share"> <h4>您可以分享到:</h4> <ulid="fenxiang"> <liclass="share_qzone"> <ahref="javascript:;"title="QQ空间"u="qzone"onclick="share_music('qzone',this);">QQ空间</a> </li> <liclass="share_weibo"> <ahref="javascript:;"title="新浪微博"u='sna'onclick="share_music('sna',this);">新浪微博</a> </li> <liclass="share_qwei"> <ahref="javascript:;"title="腾讯微博"u="wbo"onclick="share_music('wbo',this);">腾讯微博</a> </li> <liclass="share_renren"> <ahref="javascript:;"title="人人网"u="rr"onclick="share_music('rr',this);">人人网</a> </li> </ul> </div> <inputtype="hidden"id="share_title_items"value=""/> <divtitle="关闭"id="share_window_close"class="fancybox_itemfancybox_close"></div> </div> </div><divid="gotop"></div> <divclass="blank"></div> <divclass="footer"> <divclass="wrap"> <divclass="help_row"> <ahref="/faq"title="常见问题">常见问题</a> |<ahref="/help-term"title="服务条款">服务条款</a> |<ahref="/help-intro"title="帮助中心">帮助中心</a> |<ahref="/help-privacy"title="隐私策略">隐私策略</a> |<ahref="/help-about"title="关于我们">关于我们</a> |<ahref="/help-6"title="费用价格">费用价格</a> </div> <divclass="license"> </div> </p> </div> </div> </div>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。