Rumah > pembangunan bahagian belakang > tutorial php > 如何使用CodeIgniter开发实现支付宝接口调用

如何使用CodeIgniter开发实现支付宝接口调用

不言
Lepaskan: 2023-04-01 07:54:02
asal
1817 orang telah melayarinya

这篇文章主要介绍了CodeIgniter开发实现支付宝接口调用的方法,结合实例形式分析了CodeIgniter开发支付宝接口的操作步骤与相关实现技巧,需要的朋友可以参考下

本文实例讲述了CodeIgniter开发实现支付宝接口调用的方法。分享给大家供大家参考,具体如下:

准备:

1、alipay官方下载最新接口类库
2、解压后,将目录"\即时到账交易接口-create_direct_pay_by_user\demo\create_direct_pay_by_user-PHP-UTF-8\lib"复制到 application\third_party目录下,并改名lib为alipay
3、同样复制cacert.pem文件到"application\third_party\alipay"目录下,这个不是必须的,在走ssl通道时用到的证书

代码实例:

以下只列出controller部分代码,view与model根据自己实际需要去编写

<?php if ( ! defined(&#39;BASEPATH&#39;)) exit(&#39;No direct script access allowed&#39;);
/**
 * alipy支付接口
 * @author onwulc@163.com
 *
 */
class Alipay extends CI_Controller {
  private $alipay_config;
  function __construct(){
    parent::__construct();
    $this->_init_config();
    $this->load->helper(&#39;url&#39;);
  }
  function index(){
    $this->load->view(&#39;alipay&#39;);//装载支付视图页面,post到do_alipay
  }
  function do_alipay(){
    require_once(APPPATH.&#39;third_party/alipay/alipay_submit.class.php&#39;);
    //构造要请求的参数数组,无需改动
    $parameter = array(
      "service" => "create_direct_pay_by_user",
      "partner" => trim($this->alipay_config[&#39;partner&#39;]),
      "payment_type"  => &#39;1&#39;,
      "notify_url"  => site_url(&#39;alipay/do_notify&#39;),
      "return_url"  => site_url(&#39;alipay/do_return&#39;),
      "seller_email"  => trim($this->alipay_config[&#39;seller_emaill&#39;]),//支付宝帐户,
      "out_trade_no"  => $this->input->post(&#39;WIDout_trade_no&#39;),//商户订单号
      "subject"  => $this->input->post(&#39;WIDsubject&#39;),//订单名称
      "total_fee"  => $this->input->post(&#39;WIDtotal_fee&#39;),//必填,付款金额
      "body"  => $this->input->post(&#39;WIDbody&#39;),//必填,订单描述
      "show_url"  => $this->input->post(&#39;WIDshow_url&#39;),//商品展示地址
      "anti_phishing_key"  => &#39;&#39;,//防钓鱼时间戳
      "exter_invoke_ip"  => &#39;&#39;,//客户端的IP地址
      "_input_charset"  => trim(strtolower($this->alipay_config[&#39;input_charset&#39;]))
    );
    //建立请求
    $alipaySubmit = new AlipaySubmit($this->alipay_config);
    $html_text = $alipaySubmit->buildRequestForm($parameter,"get", "确认");
    echo $html_text;
  }
  function do_notify(){
    require_once(APPPATH.&#39;third_party/alipay/alipay_notify.class.php&#39;);
  }
  function do_return(){
    require_once(APPPATH.&#39;third_party/alipay/alipay_notify.class.php&#39;);
    $alipayNotify = new AlipayNotify($this->alipay_config);
    $verify_result = $alipayNotify->verifyReturn();
    //商户订单号
    $out_trade_no = $_GET[&#39;out_trade_no&#39;];
    //支付宝交易号
    $trade_no = $_GET[&#39;trade_no&#39;];
    //交易状态
    $trade_status = $_GET[&#39;trade_status&#39;];
    if($_GET[&#39;trade_status&#39;] == &#39;TRADE_FINISHED&#39; || $_GET[&#39;trade_status&#39;] == &#39;TRADE_SUCCESS&#39;) {
      //判断该笔订单是否在商户网站中已经做过处理
      //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
      //如果有做过处理,不执行商户的业务程序
      echo &#39;支付成功,交易处理环节&#39;;
    }else {
      echo "trade_status=".$_GET[&#39;trade_status&#39;];
    }
    echo "验证成功<br />";
  }
  /**
   * 初始化支付宝配置,详细参数请根据自己实际接口修改
   */
  private function _init_config(){
    //支付宝帐户
    $alipay_config[&#39;seller_emaill&#39;] = &#39;&#39;; 
    //合作身份者id,以2088开头的16位纯数字
    $alipay_config[&#39;partner&#39;] = &#39;2088999999999999&#39;;
    //安全检验码,以数字和字母组成的32位字符
    $alipay_config[&#39;key&#39;] = &#39;vhyjvdht3ayxbtx692vlkbwilhXXXXXX&#39;;
    //签名方式 不需修改
    $alipay_config[&#39;sign_type&#39;] = strtoupper(&#39;MD5&#39;);
    //字符编码格式 目前支持 gbk 或 utf-8
    $alipay_config[&#39;input_charset&#39;] = strtolower(&#39;utf-8&#39;);
    //ca证书路径地址,用于curl中ssl校验
    //请保证cacert.pem文件在当前文件夹目录中
    $alipay_config[&#39;cacert&#39;] = APPPATH.&#39;third_party/alipay/cacert.pem&#39;;
    //访问模式,根据自己的服务器是否支持ssl访问,若支持请选择https;若不支持请选择http
    $alipay_config[&#39;transport&#39;] = &#39;http&#39;;
    $this->alipay_config = $alipay_config;
  }
}
Salin selepas log masuk

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

如何使用CodeIgniter框架实现图片上传的方法

Atas ialah kandungan terperinci 如何使用CodeIgniter开发实现支付宝接口调用. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan