1. 程式人生 > >支付寶的手機網站支付介面的應用

支付寶的手機網站支付介面的應用

1.首先下載介面包

 

  解壓下載的檔案可以看到資料夾的結構如下圖:

  

  我使用的是RSA簽名方式,PHP-UTF-8的資料夾

2.readme.txt的文件說明

  紅色字型的檔案是最重要的檔案,也是必需的!


├lib┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈類資料夾
│ │
│ ├alipay_core.function.php ┈┈┈┈┈┈支付寶介面公用函式檔案
│ │
│ ├alipay_notify.class.php┈┈┈┈┈┈┈支付寶通知處理類檔案
│ │
│ ├alipay_submit.class.php┈┈┈┈┈┈┈支付寶各介面請求提交類檔案
│ │
│ └alipay_rsa.function.php
┈┈┈┈┈┈┈支付寶介面RSA函式檔案

├log.txt┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈日誌檔案

alipay.config.php┈┈┈┈┈┈┈┈┈┈┈┈基礎配置類檔案

alipayapi.php┈┈┈┈┈┈┈┈┈┈┈┈┈┈支付寶介面入口檔案

notify_url.php ┈┈┈┈┈┈┈┈┈┈┈┈┈伺服器非同步通知頁面檔案

return_url.php ┈┈┈┈┈┈┈┈┈┈┈┈┈頁面跳轉同步通知檔案

├key┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈私鑰公鑰資料夾(用法見下方※注意※)
│ │
│ ├rsa_private_key.pem┈┈┈┈┈┈┈┈┈商戶的私鑰檔案
│ │
│ └alipay_public_key.pem
┈┈┈┈┈┈┈┈支付寶的公鑰檔案

├openssl┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈預設dll檔案(用法見下方※注意※)
│ │
│ ├libeay32.dll
│ │
│ ├ssleay32.dll
│ │
│ └php_openssl.dll

cacert.pem ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈用於CURL中校驗SSL的CA證書檔案

readme.txt ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈使用說明文字


3. 把必需的檔案整合到框架裡(我當時用的是thinkPHP框架)
  (1)在 裡新建一個資料夾叫AliMobilePay

      
     把上圖裡的4個檔案拷貝到AliMobilePay資料夾裡,

      對以上檔案進行重新命名,

      alipay_core.function.php重新命名為:Corefunction.php

      alipay_notify.class.php重新命名為:Notify.php

      alipay_rsa.function.php重新命名為:Rsafunction.php

      alipay_submit.class.php重新命名為:Submit.php

      開啟Notify.php,去掉一下程式碼,

      require_once("alipay_core.function.php");
      require_once("alipay_rsa.function.php");

      同樣的道理去掉其他3個檔案裡的包含檔案。

  (2)在根目錄下建立一個資料夾key
     在key資料夾裡放入
商戶的私鑰檔案、支付寶的公鑰檔案、CA證書檔案

        

      ◆商戶的私鑰
      1、不需要對剛生成的(原始的)私鑰做pkcs8編碼
      2、不需要去掉去掉“-----BEGIN RSA PRIVATE KEY-----”、“-----END RSA PRIVATE KEY-----”
      簡言之,只要維持用openssl工具剛生成出來的私鑰的內容即可

      ◆支付寶公鑰
      1、須保留“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”這兩條文字。
      簡言之,支付寶公鑰只需要維持demo裡的原樣即可

   (3)alipay_config.php 配置檔案

      把alipay_config.php 配置檔案整合到thinkPHP框架的配置檔案裡

<?php
/**
 * Created by PhpStorm.
 * User: zhangxiaoliu
 * Date: 16/4/15
 * Time: 上午10:39
 */
//支付寶商家服務中心連結:https://b.alipay.com/login.htm?goto=https://b.alipay.com:443/newIndex.htm
return array(
    'ALIMOBILEPAY_CONFIG'=>array(
        //合作身份者id,以2088開頭的16位純數字, (合作身份者id的檢視連結:https://b.alipay.com/order/pidAndKey.htm)
        'partner' => '2088XXXXXXXXXXXX',


        //收款支付寶賬號,與partner的值一樣
        'seller_id' => '2088XXXXXXXXXXXX',


        //商戶的私鑰(字尾是.pem)檔案相對路徑
        'private_key_path'=> NEW_PORTAL_DOMAIN.'key/rsa_private_key.pem',


        //支付寶公鑰(字尾是.pem)檔案相對路徑
        'ali_public_key_path'=> NEW_PORTAL_DOMAIN.'key/alipay_public_key.pem',


        //簽名方式 不需修改
        'sign_type' => strtoupper('RSA'),


        //字元編碼格式 目前支援 gbk 或 utf-8
        'input_charset'=> 'utf-8',


        //ca證書路徑地址,用於curl中ssl校驗
        'cacert' => NEW_PORTAL_DOMAIN.'key/cacert.pem',


        //訪問模式,根據自己的伺服器是否支援ssl訪問,若支援請選擇https;若不支援請選擇http
        'transport' => 'http',


        //這裡是非同步通知頁面url,提交到專案的Payment控制器的notifyurl方法;
        //需http://格式的完整路徑,不能加?id=123這類自定義引數
        'notify_url'=> NEW_PORTAL_DOMAIN.'portal.php/AliMobilePay/notify_url.php',


        //這裡是頁面跳轉通知url,提交到專案的Payment控制器的returnurl方法;
        //需http://格式的完整路徑,不能加?id=123這類自定義引數
        'return_url'=> NEW_PORTAL_DOMAIN.'portal.php/AliMobilePay/return_url.php',


        //支付成功跳轉到的頁面
        'successpage'=>NEW_PORTAL_DOMAIN.'portal.php/Success/index',
        //支付失敗跳轉到的頁面
        'errorpage'=>NEW_PORTAL_DOMAIN.'portal.php/Error/index',
        //商品展示地址
        'product_url'=>NEW_PORTAL_DOMAIN.'portal.php/Product/index',
    )
);


 (4)支付寶幫助中心


4.呼叫支付寶介面

    (1)新建一個AliMobilePay控制器