天天看點

支付寶支付開發——當面付條碼支付和掃碼支付

關鍵字:支付寶 當面付 條碼支付 掃碼支付 二維碼支付 訂單查詢 退款

作者:方倍工作室

本文介紹支付寶中當面付下屬的條碼支付、掃碼支付、訂單查詢、退款申請的內建開發過程。

本文分為以下五個部分:

條碼支付和掃碼支付介紹

申請應用

密鑰生成及配置

API及SDK內建

條碼支付、掃碼支付、訂單查詢、退款申請

注: 支付寶支付開發有一定的門檻,如果您願意為知識付費來節省您寶貴的時間,請直接見底部說明。

條碼支付是支付寶給到線下傳統行業的一種收款方式。商家使用掃碼槍等條碼識别裝置掃描使用者支付寶錢包上的條碼/二維碼,完成收款。使用者僅需出示付款碼,所有收款操作由商家端完成。其使用場景如下:

支付寶支付開發——當面付條碼支付和掃碼支付

業務流程:

支付寶支付開發——當面付條碼支付和掃碼支付

使用步驟:

使用者登陸支付寶錢包,點選首頁“付款”,進入付款碼界面;

收銀員在商家收銀系統操作生成訂單,使用者确認支付金額;

使用者出示錢包的“付款碼”,收銀員用掃碼裝置來掃描使用者手機上的條碼/二維碼後,商家收銀系統送出支付;

付款成功後商家收銀系統會拿到支付成功或者失敗的結果。

掃碼支付,指使用者打開支付寶錢包中的“掃一掃”功能,掃描商家展示在某收銀場景下的二維碼并進行支付的模式。該模式适用于線下實體店支付、面對面支付等場景。

其使用場景如下:

支付寶支付開發——當面付條碼支付和掃碼支付
支付寶支付開發——當面付條碼支付和掃碼支付

使用者登陸支付寶錢包,點選首頁“付款-掃碼付”,進入掃一掃界面;

收銀員在商家收銀系統操作生成支付寶訂單,使用者确認支付金額,并生成二維碼;

使用者使用錢包的“掃碼付”,掃收銀員提供的二維碼,确認支付;

使用者付款後商家收銀系統會拿到支付成功或者失敗的結果。

企業在申請企業支付寶之後,進行功能申請并簽約,然後在螞蟻金服開放平台中申請應用如下(詳細過程就略了)

支付寶支付開發——當面付條碼支付和掃碼支付

然後在功能清單中,申請當面付這一功能,申請成功後如下。

支付寶支付開發——當面付條碼支付和掃碼支付

這樣,我們就有了當面付的權限了。

在支付寶當面付的接口中,使用了非對稱加密算法,商戶自己的公鑰和私鑰需要自己使用OpenSSL手動生成。對這些概念比較陌生的話,請先自行先了解一下密碼學的相關知識。OpenSSL也可以從方倍工作室部落格中找到。

下載下傳支付寶官方提供的密鑰生成工具OpenSSL,然後執行以下指令就可以生成公鑰和私鑰。

支付寶支付開發——當面付條碼支付和掃碼支付

其中

是用于生成RSA私鑰,執行後在程式目錄中生成一個檔案rsa_private_key.pem,其内容如下

指令

是用于生成RSA公鑰,執行後在程式目錄中生成一個檔案rsa_public_key.pem,其内容如下

生成的這個RSA公鑰,需要填寫到應用中去,填寫位址如下所示。私鑰不需要填到配置中,到時候配置到代碼中。

支付寶支付開發——當面付條碼支付和掃碼支付

 特别注意,密鑰要去掉注釋部分,且轉換成一行字元,否則回車換行也成為密鑰的一部分,将導緻無法正常加解密。

支付寶支付開發——當面付條碼支付和掃碼支付

 同時,可以點選 “檢視支付寶公鑰”,将支付寶的公鑰複制儲存下來,後面的程式中将需要用到。

支付寶支付開發——當面付條碼支付和掃碼支付

公共參數

請求位址:

環境

HTTPS請求位址

正式環境

https://openapi.alipay.com/gateway.do

公共請求參數:

參數

類型

是否必填

最大長度

描述

app_id

String

32

支付寶配置設定給開發者的應用ID

method

128

接口名稱

format

40

僅支援JSON

charset

10

請求使用的編碼格式,如utf-8,gbk,gb2312等

sign_type

商戶生成簽名字元串所使用的簽名算法類型,目前支援RSA

sign

256

timestamp

19

發送請求的時間,格式"yyyy-MM-dd HH:mm:ss"

version

3

調用的接口版本,固定為:1.0

notify_url

支付寶伺服器主動通知商戶伺服器裡指定的頁面http/https路徑。

app_auth_token

biz_content

-

請求參數的集合,最大長度不限,除公共參數外所有請求參數都必須放在這個參數中傳遞,具體參照各産品快速接入文檔

請求參數

out_trade_no

必須

64

商戶訂單号,64個字元以内、可包含字母、數字、下劃線;需保證在商戶端不重複

scene

支付場景 條碼支付,取值:bar_code 聲波支付,取值:wave_code

auth_code

支付授權碼

seller_id

可選

28

如果該值為空,則預設為商戶簽約賬号對應的支付寶使用者ID

total_amount

Price

11

訂單總金額,機關為元,

discountable_amount

參與優惠計算的金額,機關為元

undiscountable_amount

不參與優惠計算的金額,機關為元

subject

訂單标題

body

訂單描述

goods_detail

GoodsDetail []

訂單包含的商品清單資訊,Json格式,其它說明詳見商品明細說明

operator_id

商戶操作員編号

store_id

商戶門店編号

terminal_id

商戶機具終端編号

alipay_store_id

支付寶的店鋪編号

extend_params

ExtendParams

業務擴充參數

timeout_express

6

該筆訂單允許的最晚付款時間,逾期将關閉交易。

royalty_info

RoyaltyInfo

描述分賬資訊,Json格式,其它說明詳見分賬說明

sub_merchant

SubMerchant

二級商戶資訊,目前隻對特殊銀行機構特定場景下使用此字段

公共響應參數

code

msg

sub_code

sub_msg

響應參數

trade_no

必填

支付寶交易号

商戶訂單号

buyer_logon_id

100

買家支付寶賬号

交易金額

receipt_amount

實收金額

buyer_pay_amount

選填

買家付款的金額

point_amount

使用積分寶付款的金額

invoice_amount

交易中可給使用者開具發票的金額

gmt_payment

Date

交易支付時間

fund_bill_list

TradeFundBill []

交易支付使用的資金管道

card_balance

支付寶卡餘額

store_name

512

發生支付交易的商戶門店名稱

buyer_user_id

買家在支付寶的使用者id

discount_goods_detail

本次交易支付所使用的單品券優惠的商品優惠資訊

系統中配置如下

其中支付寶公鑰就是在前面中複制儲存的,直接複制到程式中即可,而商戶私鑰是之前OpenSSL中生成的私鑰。APPID是該服務的id号。

而這個異步通知将會接收掃碼支付結果的通知。

條碼支付的參數配置如下

程式監測,最終送出的url如下

發送的json資料如下:

接收到的資料如下

掃碼支付的參數配置如下

生成的送出請求URL如下

傳回的資料如下:

其中的https://qr.alipay.com/bax00885xbhszseo9l7p404d 就是二維碼連結位址,使用接口将其成二維碼後如下所示。

支付寶支付開發——當面付條碼支付和掃碼支付

當支付寶使用者掃碼的時候,接口通知将收到如下資料

當使用者輸入密碼付款成功之後,将收到如下資料

訂單查詢的參數配置如下

最終送出的url如下

訂單退款的參數配置如下

支付寶支付開發——當面付條碼支付和掃碼支付

我們提供支付寶接口配置SDK Demo一條龍服務,費用300元(含PHP源碼提供、密鑰生成、配置調試,直到demo跑通為止),需要加QQ 1354386063

          有掃碼支付定制開發服務,3000元起步,需要加QQ 1354386063