Maison  >  Article  >  développement back-end  >  Comment utiliser CodeIgniter pour développer et implémenter des appels d'interface Alipay

Comment utiliser CodeIgniter pour développer et implémenter des appels d'interface Alipay

不言
不言original
2018-06-14 14:34:541682parcourir

Cet article présente principalement la méthode d'utilisation de CodeIgniter pour développer et implémenter l'appel d'interface Alipay. Il analyse les étapes de fonctionnement et les techniques d'implémentation associées de CodeIgniter pour développer l'interface Alipay sous forme d'exemples. suivant

Les exemples de cet article sont expliqués. Utilisez CodeIgniter pour développer des méthodes permettant d'implémenter les appels d'interface Alipay. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Préparation :

1. Téléchargez officiellement la dernière bibliothèque de classes d'interface
Après la décompression, copiez le répertoire ". Interface de transaction de compte instantané - copiez create_direct_pay_by_userdemocreate_direct_pay_by_user-PHP-UTF-8lib" dans le répertoire applicationthird_party et renommez la bibliothèque en alipay
3. Copiez également le fichier cacert.pem dans le répertoire "applicationthird_partyalipay". Ce n'est pas nécessaire et est utilisé lors de l'utilisation du canal SSL. Certificat

Exemple de code :

Seule la partie contrôleur du code est répertoriée ci-dessous. La vue et le modèle peuvent être écrits en fonction de vos besoins réels

<?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;
  }
}

Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention. au site Web PHP chinois !

Recommandations associées :

Comment utiliser le framework CodeIgniter pour télécharger des images

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn