Payment:支付寶支付配置文件設置教程

終於把3.0版本作好了。從今天開始好好寫文檔,讓你們作支付作的開心點。php

項目GitHub地址:https://github.com/helei112g/...git

從2016年6月payment作出來,到這一版本(3.0),堅持了快一年啦。感謝這期間給我支持(打賞與協做)的人。github

Payment 主要針對支付寶支付、微信支付的接口進行了聚合。開發者無需重複集成繁瑣的支付接口,使用 Payment 就能應對全部支付場景,快速接入支付功能。小程序

Payment 針對不一樣支付服務商的接口,提供了統一的調用方式,而且內部將簽名、驗籤進行了集成,使用者只須要喂數據而後拿到結果進行本身的業務便可。徹底屏蔽支付寶與微信內部繁雜的細節。只要按照個人文檔操做,10分鐘可完成支付流程。數組

當前 Payment 基本接入完支付寶與微信的資金相關接口。到當前爲止,Payment SDK 主要支持功能以下:安全

支持的支付寶相關接口清單:服務器

  • 即時到帳功能(主要用於pc上支付)微信

  • 手機網站支付(WAP支付)app

  • APP支付(移動支付)異步

  • 當面付(掃碼支付與條碼支付)

  • 交易查詢(支付訂單查詢接口)

  • 退款接口(完成支付的訂單,可經過該接口完成退款)

  • 退款查詢接口(退款接口須要經過該接口進行查詢狀態)

  • 單筆轉帳到支付寶帳戶接口(只能轉到用戶支付寶賬號)

  • 轉帳訂單查詢接口(查詢轉帳訂單狀態)

ps: 支付寶接口從 payment 3.0 開始,僅支持支付寶新版本接口。

支持的微信支付相關接口清單:

  • 手機網站支付(H5支付,特殊商家可用)

  • APP支付(移動支付)

  • 公衆號支付

  • 刷卡支付(相似支付寶的條碼支付)

  • 小程序支付

  • 交易查詢(支付訂單查詢)

  • 申請退款接口

  • 查詢退款接口

  • 企業付款給我的接口

  • 查詢企業付款接口

微信最糟糕的就是,不一樣支付接口,須要申請不一樣的商戶號。這裏簡單總結一下:

APP支付 必須到 微信開放平臺申請一個應用,而後去申請開通支付功能,申請的商戶賬號沒法用於 公衆號支付與小程序支付。

公衆號支付 必須首先有一個認證的服務號,而後到公衆號後臺進行申請開通支付功能。又會得到一個商戶號

小程序支付 微信分配的小程序ID,因此恭喜你,你又有了一個商戶號

至於其餘支付,目前檢測好像可用共享。也就只剩下一個刷卡支付了。


本文主要講解支付寶的配置文件,配置清單以下:

return [
    'use_sandbox'           => true,

    'partner'               => '2088102169252684',
    'app_id'                => '2016073100130857',
    'sign_type'             => 'RSA2',

    'ali_public_key'        => 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAU3GYXkAaumdWQt7IDAQAB',
    'rsa_private_key'       => dirname(__FILE__) . DIRECTORY_SEPARATOR . 'rsa_private_key.pem',

    'limit_pay'             => [
        //'balance',
        //'moneyFund',
        // ... ...
    ],

    'notify_url'            => 'https://helei112g.github.io/',
    'return_url'            => 'https://helei112g.github.io/',

    'return_raw'            => false,
];

在支付中最麻煩的就是配置密鑰。這裏逐一爲你們說明每個配置的含義、以及如何進行設置。
其中 是否必須 列表中若是標記爲 ,則該項必須設置,不然sdk將沒法獲得結果。

參數 類型 是否必須 說明
use_sandbox boolean 是否開啓沙箱模式
partner string 商戶UID,以2088開頭
app_id string 支付寶分配給開發者的應用ID
sign_type string 簽名方式
ali_public_key string 支付寶公鑰
rsa_private_key string 用戶應用私鑰
limit_pay string 限制的支付方式
notify_url string 支付寶異步通知的服務器地址
return_url string 支付報支付成功返回地址
return_raw boolean 是否返回支付寶原始數據

接下來對每個參數詳細說明,不一樣的設置帶來的不一樣效果。

use_sandbox 支付寶新版本提供了沙箱模式。若是該選項設置爲 true 則使用支付寶的沙箱功能。
下面簡單介紹沙箱的使用方式。

首先登錄 螞蟻金服開放平臺 按照下圖找到本身的沙箱應用。

image

image

你們注意截圖,重要的配置信息均來自這裏。

partner 對應圖中的 商戶UID,若是是正式應用,可用在【個人應用】=》【應用】中找到對應的信息。
這部分信息較敏感,就不截圖了。

app_id 就是對應的建立的應用的id。圖中有很醒目的字標記。

sign_type 請求支付時,數據加密的方式,目前支持RSA2和RSA,推薦使用RSA2。你徹底不用管簽名的實現,只須要這裏作一下配置就好。

接下來,密鑰的配置是重點,70% 的支付沒法成功的緣由,均是密鑰設置問題。
關於密鑰如何生成與配置,請看

支付寶官方密鑰生成與配置教程

ali_public_key 注意看這張圖的紅線部分,只要上傳本身應用的公鑰後,可用點這裏,查看支付寶公鑰,可獲取到支付寶的公鑰。

image

這裏必定要記得是 支付寶的公鑰,不是你本身本地生成的,而是在開發平臺中上傳本身的公鑰後,拿到的支付寶公鑰。

接下來就是這個配置該如何填寫了。這裏支持文件的方式,你能夠將支付寶公鑰複製到一個單獨的文件,而後這個字段填寫對應文件的路徑。例如:

'ali_public_key' => dirname(__FILE__) . DIRECTORY_SEPARATOR . 'alipay_public_key_rsa.pem'

你也可用直接將支付寶公鑰的值,填入這裏,例如:

'ali_public_key' => 'MIIBIjANBgkqhkiG9w0BAQEFAAOO1BU3GYXkAaumdWQt7f+khoFoSw+x8yqQIDAQAB',

這裏爲了文章排版美觀,有刪減部分支付寶公鑰內容

不管那種方式,強烈建議在填入時,去掉:

-----BEGIN PUBLIC KEY-----

以及 -----END PUBLIC KEY----- 只保留中間部分的內容。

rsa_private_key 商戶私鑰的設置,按照上面發的教程)進行操做,而後把獲取到的值,複製出來。跟支付寶公鑰同樣,也能夠單獨放在一個文件裏,而後引用他的路徑,或者直接將它的值,設置在這個字段上。

請記得只保留密鑰內容部分。

這裏請必定分清楚 私鑰,是商戶本身生成的公鑰,是支付寶開發平臺看到的

limit_pay 在讓用戶使用支付寶支付過程當中,可能想禁止用戶使用某些渠道,好比:不許使用 信用卡支付 不許使用 花唄支付。均可以在這裏進行配置。詳細的可取值,請看圖片

image

官方連接

notify_url 異步通知。當支付寶支付成功後,你想要在服務端收到支付寶支付成功的通知,就必須設置該選項。應該是:http/https 開頭的url。

這裏強烈建議以支付寶服務器的通知爲依據來判斷是否支付成功。關於異步通知的處理,在後面的文章將有專題講解。

return_url 當前主要是即時到帳、手機網站支付兩個接口會用到,在支付成功後,跳轉到哪個連接。也必須是以 HTTP/HTTPS 開頭的url。能夠理解爲同步通知,但請不要以它的結果爲準。爲了安全仍是應該以異步爲準。

return_raw 以前的版本都沒有該參數,是3.0新加入的,它的主要目的是讓調用者控制本身拿到什麼樣的數據。若是設置爲true。SDK 則只會向支付寶發出請求,收到數據後進行驗籤,經過後,會以數組的形式將全部支付寶返回的數據返回給客戶端。

若是設置爲false ,則會拋棄支付寶的某些字段。而且會對某些字段名稱進行從新映射,這種方式帶來的好處是,可用確保支付寶、微信返回的數據是基本一致的,可是可能致使調用者損失部分信息。這裏你們根據實際狀況進行衡量。

至此,支付寶的配置所有講解完畢。 去看看如何完成即時到帳

若是你有不清楚的或者願意交流的地方,請聯繫我:

郵箱:dayugog@gmail.com

若是你以爲這個項目有幫助到你,請打賞我,讓我有動力持續下去[左邊微信,右邊支付寶]():

image

ps: 通常性的問題請你們能夠先查資料,若是實在沒法解決找我吧(難免費服務)。

相關文章
相關標籤/搜索