服务热线 400-660-8066

深圳网站建设
首页 站内资讯

深圳网站建设

站内资讯
深圳网站建设 / 站内资讯 / 行业资讯 / 正文

移动端网站怎么做微信支付宝支付

来源: All文章
发布时间:2023-07-31 09:32:00

  随着移动互联的发展,无现金时代成为发展趋势,据有关报道,在无现金支付的普及度上,韩国已达90%,中国为60%,美国和英国为50%,在大部分发达国家,信用卡和交通电子钱包支付为主,而在中国由于信用卡发展先对较晚,信用体系不健全,地区发展不平衡,大部分中西部人民承担风险的能力不足,而且信用卡比较高,所以信用卡的发展在中国举步维艰。当时随着4G网络的普及,人民生活的提高,中国手机普及率达到了95%,智能手机普及率达到了75%,这为手机支付的发展提供了先决条件。

  以下是关于Thinkphp的支付宝接口实例:

  ?ph

  namespaceHome\Service;

  classAlipayService{

  /**

  *支付宝配置信息

  *本使用包为最新SDK。ph

  5.5+才支持

  *采用的RSA2加密方式(支付宝推荐),到https://docs.open.alipay.com/291/105971/去下载windows工具,生成公钥和私钥,将公钥在控制台上传设置,再查看其公钥填入以下公钥信息

  */

  function__construct(){

  $payConfig=array(

  'app_id'=D('Config')-get('alipay_partner'),//应用ID,您的APPID。2023071907816658

  'merchant_private_key'='',//应用私钥,您的原始格式RSA私钥

  'notify_url'=C('PROTOCOL').$_SERVER['SERVER_NAME'].U('Pay/alipay_notify_url'),//异步通知地址

  'return_url'=C('PROTOCOL').$_SERVER['SERVER_NAME'].U('Pay/alipay_notify_url'),//同步跳转

  'charset'='UTF-8',//编码格式

  'sign_type'='RSA2',//签名方式

  'gatewayUrl'='https://openapi.alipay.com/gateway.do',//支付宝网关

  'alipay_public_key'='',//支付宝公钥,查看地址:对应APPID下的支付宝公钥。设置和支付是两套内容。设置后学要到管理平台去查看应用公钥

  'pay_log_txt'=.'/Public/alipay_log_bef74b0ac451f8e6e5301453f94749989

  9.txt',//支付日志(需要先建立此文件)

  );

  $this-payConfig=$payConfig;

  }

  /**

  *获取支付宝配置参数

  *@returnarray

  */

  publicfunctiongetConfig(){

  return$this-payConfig;

  }

  /**

  *设置支付配置参数

  *@param$data

  */

  publicfunctionsetConfig($data){

  $payConfig=$this-payConfig;

  foreach($dataas$k=$v){

  $payConfig[$k]=$v;

  }

  $this-payConfig=$payConfig;

  }

  /**

  *支付宝支付

  *@param$data

  */

  publicfunctionpay($data){

  Vendor('Alipay.wappay.service.AlipayTradeService');

  Vendor('Alipay.wappay.buildermodel.AlipayTradeWapPayContentBuilder');

  $config=$this-payConfig;

  $out_trade_no=$data['out_trade_no'];//商户订单号,商户网站订单系统中唯一订单号,必填

  $subject=$data['subject'];//订单名称,必填

  $total_amount=$data['total_amount'];//付款金额,必填

  $body=$data['body'];//商品描述,可空

  $timeout_express=1m;//超时时间

  $payRequestBuilder=new\AlipayTradeWapPayContentBuilder();

  $payRequestBuilder-setBody($body);

  $payRequestBuilder-setSubject($subject);

  $payRequestBuilder-setOutTradeNo($out_trade_no);

  $payRequestBuilder-setTotalAmount($total_amount);

  $payRequestBuilder-setTimeExpress($timeout_express);

  $payResponse=new\AlipayTradeService($config);

  $result=$payResponse-wapPay($payRequestBuilder,$config['return_url'],$config['notify_url']);

  }

  /**

  *记录支付异步记录

  *@param$data

  */

  publicfunctionsetPaylog($data){

  $config=$this-payConfig;

  $str=serialize($data).\r\n==================================================================================\r\n;;

  import(Org.Util.File);

  $file=new\File($config['pay_log_txt']);

  $realfiel=$file-getRealFile();

  file_put_contents($realfiel,$str,FILE_APPEND);

  }

  }支付处理控制器

  ?ph

  namespaceHome\Controller;

  useThink\Controller;

  useCommon\Controller\HomeController;

  classPayControllerextendsHomeController{

  /**

  *支付宝支付

  *@param$order_number订单号

  */

  publicfunctionalipay($order_number){

  $order=D('Order')-where(array('order_number'=$order_number))-find();

  $orderDetail=D('OrderDetail')-where(array('oid'=$order['id']))-field('pid')-select();

  $firstProduct=D('Products')-where(array('id'=$orderDetail[0]['pid']))-field('title')-find();

  //支付数据

  $payData=array(

  'out_trade_no'=$order['order_number'],

  'subject'=D('Config')-get('alipay_subject').$order_number,//支付主题

  'total_amount'=0.01,//测试订单号0.01元支付$order['real_all_money']

  'body'=$firstProduct['title'].'等',

  );

  D('Alipay','Service')-pay($payData);

  }

  /**

  *支付宝回调地址

  */

  publicfunctionalipay_notify_url(){

  //记录日志,这里最好放在开头以防下面代码逻辑有误不能正常发现是否被调用

  D('Alipay','Service')-setPaylog($logArr);

  Vendor('Alipay.wappay.service.AlipayTradeService');

  $payConfig=D('Alipay','Service')-getConfig();

  $arr=$_POST;

  $logArr=$arr;

  $alipaySevice=new\AlipayTradeService($payConfig);

  $alipaySevice-writeLog(var_export($_POST,true));

  $result=$alipaySevice-check($arr);

  if($result){

  //验证成功

  $out_trade_no=$_POST['out_trade_no'];//商户订单号

  $trade_no=$_POST['trade_no'];//支付宝交易号

  $trade_status=$_POST['trade_status'];//交易状态

  if($_POST['trade_status']=='TRADE_FINISHED'){

  //交易结束,不可退款

  }elseif($_POST['trade_status']=='TRADE_SUCCESS'){

  //交易支付成功

  $re=D('Order')-setPay($out_trade_no,1);

  }

  echosuccess;//请不要修改或删除

  $logArr['result']=success;

  }else{

  //验证失败

  echofail;//请不要修改或删除

  $logArr['result']=fail;

  }

  }

  /**

  *支付成功跳转地址

  */

  publicfunctionresultinfo(){

  $ModelObj=D('Order');

  $order_number=I('out_trade_no');

  $order=$ModelObj-where(array('order_number'=$order_number))-find();

  $this-order=$order;

  $this-display('pay_ok');

  }

  }

  支付宝的接口相对于微信要简单的多,而且移动端会自动调出支付宝支付,而微信就麻烦的很,第三方要申请H5支付,微信中打开调用的不是H5支付,又要单独处理。

  所以微信支付比支付宝的麻烦。

* 文章来源于网络,如有侵权,请联系客服删除处理。
在线 咨询

添加动力小姐姐微信

微信 咨询

电话咨询

400-660-8066

我们联系您

电话 咨询
微信扫码关注动力小姐姐 X
qr