真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何開發(fā)支付寶支付中的當(dāng)面付條碼支付和掃碼支付-創(chuàng)新互聯(lián)

如何開發(fā)支付寶支付中的當(dāng)面付條碼支付和掃碼支付,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

成都創(chuàng)新互聯(lián)主營佛坪網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā)公司,佛坪h5成都小程序開發(fā)搭建,佛坪網(wǎng)站營銷推廣歡迎佛坪等地區(qū)企業(yè)咨詢

 一、條碼支付及二維碼支付介紹

1. 條碼支付
條碼支付是支付寶給到線下傳統(tǒng)行業(yè)的一種收款方式。商家使用掃碼槍等條碼識別設(shè)備掃描用戶支付寶錢包上的條碼/二維碼,完成收款。用戶僅需出示付款碼,所有收款操作由商家端完成。其使用場景如下:如何開發(fā)支付寶支付中的當(dāng)面付條碼支付和掃碼支付
業(yè)務(wù)流程:如何開發(fā)支付寶支付中的當(dāng)面付條碼支付和掃碼支付


使用步驟:

  1. 用戶登陸支付寶錢包,點擊首頁“付款”,進入付款碼界面;

  2. 收銀員在商家收銀系統(tǒng)操作生成訂單,用戶確認支付金額;

  3. 用戶出示錢包的“付款碼”,收銀員用掃碼設(shè)備來掃描用戶手機上的條碼/二維碼后,商家收銀系統(tǒng)提交支付;

  4. 付款成功后商家收銀系統(tǒng)會拿到支付成功或者失敗的結(jié)果。

2. 掃碼支付


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

其使用場景如下:如何開發(fā)支付寶支付中的當(dāng)面付條碼支付和掃碼支付
業(yè)務(wù)流程:如何開發(fā)支付寶支付中的當(dāng)面付條碼支付和掃碼支付


使用步驟:

  1. 用戶登陸支付寶錢包,點擊首頁“付款-掃碼付”,進入掃一掃界面;

  2. 收銀員在商家收銀系統(tǒng)操作生成支付寶訂單,用戶確認支付金額,并生成二維碼;

  3. 用戶使用錢包的“掃碼付”,掃收銀員提供的二維碼,確認支付;

  4. 用戶付款后商家收銀系統(tǒng)會拿到支付成功或者失敗的結(jié)果。

二、接口申請


企業(yè)在申請企業(yè)支付寶之后,進行功能申請并簽約,然后在螞蟻金服開放平臺中申請應(yīng)用如下(詳細過程就略了)如何開發(fā)支付寶支付中的當(dāng)面付條碼支付和掃碼支付
然后在功能列表中,申請當(dāng)面付這一功能,申請成功后如下。如何開發(fā)支付寶支付中的當(dāng)面付條碼支付和掃碼支付
這樣,我們就有了當(dāng)面付的權(quán)限了。

三、密鑰生成


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

下載支付寶官方提供的密鑰生成工具OpenSSL,然后執(zhí)行以下命令就可以生成公鑰和私鑰。如何開發(fā)支付寶支付中的當(dāng)面付條碼支付和掃碼支付
其中

genrsa -out rsa_private_key.pem 1024

是用于生成RSA私鑰,執(zhí)行后在程序目錄中生成一個文件rsa_private_key.pem,其內(nèi)容如下


-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCyffRONGd8Q/1kRh2cpsSRi360DXLHI7zxdPJGYe5HKDWF7u9b
3zZU9erZpM90XE7gZRKsxIgOurH4uqhmVRbto3e+LiYOyNpd6As3Q427KCTIT7aj
hHicZ6GWhegTUiVLqiuWLsauQcbI6DO4GEZrlvAdzus0WcJiJOxW02rxSQIDAQAB
AoGAXBJYyVaC4zj3Jph8YOStlR5N13bwdATdW/glWWT+0rnNEi90TQHRNvY7lNVN
JgrPrTS182TVgjOPxmwSnebakhIuGIdPq99GLE4LGd5lKWTzkd84BMvhatfNsCCz
cEVFqKg3tZd4t3fQ93FrILsnnZpLhiW53jIrStCkR3rx9OECQQDWMSHyc91hEVMQ
qVNasbGEicKWxhoDqjdm2lHkBx4mrB9JEZFDs6MxWdajf2/Qw+tgtpN3YBcCDw/H
nGHhQtStAkEA1VTyjOdAwWode8X4fu0IPq9+E19mcVOAJjLBH46mropwgOdj3raq
T/ThaKeaydjabsTAiY2J18HiTiyH+1bGjQJBAKgRJXH5OFxSG7uXIbCofYJiFi34
g7EcfxxVcqxaaW4u4N2Uy0c0TXkL5T+lXzeQg8D/gfbJj0QuTVNzgdofdoECQBHY
OznCFk6Xe8PguXqUhT4JG/iu4DjWjT+kuzbSjerHtcVylY4JpZFuoHRKoM4Fj6/4
UUqwRjmABFgZrX4+sfkCQCNI8RCZ6yprh6kEOePo3uazAlNENP8dKkhgqChawdK7
7NzlJ727Nt23STHFx6NkhzyruJGQ5Vx1Lkl0wKuKbXM=
-----END RSA PRIVATE KEY-----


命令

rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

是用于生成RSA公鑰,執(zhí)行后在程序目錄中生成一個文件rsa_public_key.pem,其內(nèi)容如下


-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCyffRONGd8Q/1kRh2cpsSRi360
DXLHI7zxdPJGYe5HKDWF7u9b3zZU9erZpM90XE7gZRKsxIgOurH4uqhmVRbto3e+
LiYOyNpd6As3Q427KCTIT7ajhHicZ6GWhegTUiVLqiuWLsauQcbI6DO4GEZrlvAd
zus0WcJiJOxW02rxSQIDAQAB
-----END PUBLIC KEY-----


生成的這個RSA公鑰,需要填寫到應(yīng)用中去,填寫地址如下所示。私鑰不需要填到配置中,到時候配置到代碼中。如何開發(fā)支付寶支付中的當(dāng)面付條碼支付和掃碼支付
特別注意,密鑰要去掉注釋部分,且轉(zhuǎn)換成一行字符,否則回車換行也成為密鑰的一部分,將導(dǎo)致無法正常加解密。如何開發(fā)支付寶支付中的當(dāng)面付條碼支付和掃碼支付
同時,可以點擊 “查看支付寶公鑰”,將支付寶的公鑰復(fù)制保存下來,后面的程序中將需要用到。如何開發(fā)支付寶支付中的當(dāng)面付條碼支付和掃碼支付


四、密鑰生成API與密鑰配置
公共參數(shù)

請求地址:


環(huán)境HTTPS請求地址
正式環(huán)境https://openapi.alipay.com/gateway.do

公共請求參數(shù):

參數(shù)類型是否必填較大長度描述
app_idString32支付寶分配給開發(fā)者的應(yīng)用ID
methodString128接口名稱
formatString40僅支持JSON
charsetString10請求使用的編碼格式,如utf-8,gbk,gb2312等
sign_typeString10商戶生成簽名字符串所使用的簽名算法類型,目前支持RSA
signString256商戶請求參數(shù)的簽名串,詳見簽名
timestampString19發(fā)送請求的時間,格式"yyyy-MM-dd HH:mm:ss"
versionString3調(diào)用的接口版本,固定為:1.0
notify_urlString256支付寶服務(wù)器主動通知商戶服務(wù)器里指定的頁面http/https路徑。
app_auth_tokenString40詳見應(yīng)用授權(quán)概述
biz_contentString-請求參數(shù)的集合,較大長度不限,除公共參數(shù)外所有請求參數(shù)都必須放在這個參數(shù)中傳遞,具體參照各產(chǎn)品快速接入文檔

請求參數(shù)

參數(shù)類型是否必填較大長度描述
out_trade_noString必須64商戶訂單號,64個字符以內(nèi)、可包含字母、數(shù)字、下劃線;需保證在商戶端不重復(fù)
sceneString必須32支付場景 條碼支付,取值:bar_code 聲波支付,取值:wave_code
auth_codeString必須32支付授權(quán)碼
seller_idString可選28如果該值為空,則默認為商戶簽約賬號對應(yīng)的支付寶用戶ID
total_amountPrice可選11訂單總金額,單位為元,
discountable_amountPrice可選11參與優(yōu)惠計算的金額,單位為元
undiscountable_amountPrice可選11不參與優(yōu)惠計算的金額,單位為元
subjectString必須256訂單標題
bodyString可選128訂單描述
goods_detailGoodsDetail []可選-訂單包含的商品列表信息,Json格式,其它說明詳見商品明細說明
operator_idString可選28商戶操作員編號
store_idString可選32商戶門店編號
terminal_idString可選32商戶機具終端編號
alipay_store_idString可選32支付寶的店鋪編號
extend_paramsExtendParams可選-業(yè)務(wù)擴展參數(shù)
timeout_expressString可選6該筆訂單允許的最晚付款時間,逾期將關(guān)閉交易。
royalty_infoRoyaltyInfo可選-描述分賬信息,Json格式,其它說明詳見分賬說明
sub_merchantSubMerchant可選-二級商戶信息,當(dāng)前只對特殊銀行機構(gòu)特定場景下使用此字段

公共響應(yīng)參數(shù)

參數(shù)類型是否必填較大長度描述
codeString-網(wǎng)關(guān)返回碼,詳見文檔
msgString-網(wǎng)關(guān)返回碼描述,詳見文檔
sub_codeString-業(yè)務(wù)返回碼,詳見文檔
sub_msgString-業(yè)務(wù)返回碼描述,詳見文檔
signString-簽名,詳見文檔

響應(yīng)參數(shù)

參數(shù)類型是否必填較大長度描述
trade_noString必填64支付寶交易號
out_trade_noString必填64商戶訂單號
buyer_logon_idString必填100買家支付寶賬號
total_amountPrice必填11交易金額
receipt_amountString必填11實收金額
buyer_pay_amountPrice選填11買家付款的金額
point_amountPrice選填11使用積分寶付款的金額
invoice_amountPrice選填11交易中可給用戶開具發(fā)票的金額
gmt_paymentDate必填32交易支付時間
fund_bill_listTradeFundBill []必填-交易支付使用的資金渠道
card_balancePrice選填11支付寶卡余額
store_nameString選填512發(fā)生支付交易的商戶門店名稱
buyer_user_idString必填28買家在支付寶的用戶id
discount_goods_detailString必填-本次交易支付所使用的單品券優(yōu)惠的商品優(yōu)惠信息

系統(tǒng)中配置如下


 "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDI6d306Q8fIfCOaTXyiUeJHkrIvYISRcc73s3vF1ZT7XN8RNPwJxo8pWaJMmvyTn9N4HQ632qJBVHf8sxHi/fEsraprwCtzvzQETrNRwVxLO5jVmRGi60j8Ue1efIlzPXV9je9mkjzOmdssymZkh3QhUrCmZYI/FCEa3/cNMW0QIDAQAB",

 //商戶私鑰
 'merchant_private_key' => "MIICXAIBAAKBgQCyffRONGd8Q/1kRh2cpsSRi360DXLHI7zxdPJGYe5HKDWF7u9b3zZU9erZpM90XE7gZRKsxIgOurH4uqhmVRbto3e+LiYOyNpd6As3Q427KCTIT7ajhHicZ6GWhegTUiVLqiuWLsauQcbI6DO4GEZrlvAdzus0WcJiJOxW02rxSQIDAQABAoGAXBJYyVaC4zj3Jph8YOStlR5N13bwdATdW/glWWT+0rnNEi90TQHRNvY7lNVNJgrPrTS182TVgjOPxmwSnebakhIuGIdPq99GLE4LGd5lKWTzkd84BMvhatfNsCCzcEVFqKg3tZd4t3fQ93FrILsnnZpLhiW53jIrStCkR3rx9OECQQDWMSHyc91hEVMQqVNasbGEicKWxhoDqjdm2lHkBx4mrB9JEZFDs6MxWdajf2/Qw+tgtpN3YBcCDw/HnGHhQtStAkEA1VTyjOdAwWode8X4fu0IPq9+E19mcVOAJjLBH46mropwgOdj3raqT/ThaKeaydjabsTAiY2J18HiTiyH+1bGjQJBAKgRJXH5OFxSG7uXIbCofYJiFi34g7EcfxxVcqxaaW4u4N2Uy0c0TXkL5T+lXzeQg8D/gfbJj0QuTVNzgdofdoECQBHYOznCFk6Xe8PguXqUhT4JG/iu4DjWjT+kuzbSjerHtcVylY4JpZFuoHRKoM4Fj6/4UUqwRjmABFgZrX4+sfkCQCNI8RCZ6yprh6kEOePo3uazAlNENP8dKkhgqChawdK77NzlJ727Nt23STHFx6NkhzyruJGQ5Vx1Lkl0wKuKbXM=",

 //編碼格式
 'charset' => "UTF-8",

 //支付寶網(wǎng)關(guān)
 'gatewayUrl' => "https://openapi.alipay.com/gateway.do",

 //應(yīng)用ID
 'app_id' => "2016061501500000",

 //異步通知地址,只有掃碼支付預(yù)下單可用
 'notify_url' => "http://www.fangbei.org/alipay/notify.html",

 //較大查詢重試次數(shù)
 'MaxQueryRetry' => "10",

 //查詢間隔
 'QueryDuration' => "3"
);

其中支付寶公鑰就是在前面中復(fù)制保存的,直接復(fù)制到程序中即可,而商戶私鑰是之前OpenSSL中生成的私鑰。APPID是該服務(wù)的id號。

而這個異步通知將會接收掃碼支付結(jié)果的通知。

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


1. 條碼支付


條碼支付的參數(shù)配置如下


// (必填) 商戶網(wǎng)站訂單系統(tǒng)中訂單號,64個字符以內(nèi),只能包含字母、數(shù)字、下劃線,
// 需保證商戶系統(tǒng)端不能重復(fù),建議通過數(shù)據(jù)庫sequence生成,
$outTradeNo = "barpay" . date('Ymdhis') . mt_rand(100, 1000);
$subject = "方倍工作室-支付寶-當(dāng)面付-掃碼支付";
$totalAmount = 0.01; // (必填) 訂單總金額,單位為元,不能超過1億元

// (必填) 付款條碼,用戶支付寶錢包手機app點擊“付款”產(chǎn)生的付款條碼
$authCode = $_POST['auth_code']; //28開頭18位數(shù)字

// 支付超時,線下掃碼交易定義為5分鐘
$timeExpress = "5m";

// 創(chuàng)建請求builder,設(shè)置請求參數(shù)
$barPayRequestBuilder = new AlipayTradePayContentBuilder();
$barPayRequestBuilder->setOutTradeNo($outTradeNo);
$barPayRequestBuilder->setTotalAmount($totalAmount);
$barPayRequestBuilder->setAuthCode($authCode);
$barPayRequestBuilder->setTimeExpress($timeExpress);
$barPayRequestBuilder->setSubject($subject);
// 調(diào)用barPay方法獲取當(dāng)面付應(yīng)答
$barPay = new AlipayTradeService($config);
$barPayResult = $barPay->barPay($barPayRequestBuilder);

switch ($barPayResult->getTradeStatus()) {
 case "SUCCESS":
  echo "支付寶支付成功:" . "
--------------------------
";   print_r($barPayResult->getResponse());   break;  case "FAILED":   echo "支付寶支付失敗!!!" . "
--------------------------
";   if (!empty($barPayResult->getResponse())) {    print_r($barPayResult->getResponse());   }   break;  case "UNKNOWN":   echo "系統(tǒng)異常,訂單狀態(tài)未知!!!" . "
--------------------------
";   if (!empty($barPayResult->getResponse())) {    print_r($barPayResult->getResponse());   }   break;  default:   echo "不支持的交易狀態(tài),交易返回異常!!!";   break; }  return; }

程序監(jiān)測,最終提交的url如下


https://openapi.alipay.com/gateway.do?app_id=2016061501500000&version=1.0&format=json&sign_type=RSA&method=alipay.trade.pay×tamp=2016-08-26+17%3A14%3A52&auth_token=&alipay_sdk=alipay-sdk-php-20160411&terminal_type=&terminal_info=&prod_code=¬ify_url=&charset=UTF-8&app_auth_token=&sign=EMVoBAhPkW6B1m%2BoXytdbUpIxnIAq73jtiPhlH2VUYy4OcJQ2UiVTXWttw0y%2B7UEXHWILY8fYRDoNrJWSjBATrAqbGCLpPc4YBQSwtPCb%2F76d65dMQEyrEnk2sgcqhxCiJNKRoQjgAQmBQdHneerU7SwSNJ%2FfF%2F025yltZk5lzQ%3D


發(fā)送的json數(shù)據(jù)如下:


{
 "scene":"bar_code",
 "out_trade_no":"barpay20160826051452680",
 "total_amount":0.01,
 "auth_code":"289743098358423535",
 "timeout_express":"5m",
 "subject":"方倍工作室-支付寶-當(dāng)面付-掃碼支付"
}

接收到的數(shù)據(jù)如下


{
 "alipay_trade_pay_response":{
  "code":"10000",
  "msg":"Success",
  "buyer_logon_id":"118***@qq.com",
  "buyer_pay_amount":"0.01",
  "buyer_user_id":"2088002364008751",
  "fund_bill_list":[
   {
    "amount":"0.01",
    "fund_channel":"ALIPAYACCOUNT"
   }
  ],
  "gmt_payment":"2016-08-26 17:14:59",
  "invoice_amount":"0.01",
  "open_id":"20880044751374809757987911112575",
  "out_trade_no":"barpay20160826051452680",
  "point_amount":"0.00",
  "receipt_amount":"0.01",
  "total_amount":"0.01",
  "trade_no":"2016082621001004750244100034"
 },
 "sign":"pEDeMwh7x73t9LmWrZpGnVb1npnKtODw6+8MDUTurNPVWXR1JHT+x3cRt2G4SDNHzxkJTzSpUXjNylsWisRTnQJJzqRP5XMujxmaAHP/d5xXeyWasDag5Cj7yGD7t80buDAsdE4eoqQ6ox7KzJ6LwKcphOX13tI+Ukt1dGCQS5o="
}

2. 掃碼支付
掃碼支付的參數(shù)配置如下


// (必填) 商戶網(wǎng)站訂單系統(tǒng)中訂單號,64個字符以內(nèi),只能包含字母、數(shù)字、下劃線,
// 需保證商戶系統(tǒng)端不能重復(fù),建議通過數(shù)據(jù)庫sequence生成,
$outTradeNo = "qrpay".date('Ymdhis').mt_rand(100,1000);
$subject = "方倍工作室-支付寶-當(dāng)面付-掃碼支付";
$totalAmount = "0.01";

// 支付超時,線下掃碼交易定義為5分鐘
$timeExpress = "5m";

// 創(chuàng)建請求builder,設(shè)置請求參數(shù)
$qrPayRequestBuilder = new AlipayTradePrecreateContentBuilder();
$qrPayRequestBuilder->setOutTradeNo($outTradeNo);
$qrPayRequestBuilder->setTotalAmount($totalAmount);
$qrPayRequestBuilder->setTimeExpress($timeExpress);
$qrPayRequestBuilder->setSubject($subject);

// 調(diào)用qrPay方法獲取當(dāng)面付應(yīng)答
$qrPay = new AlipayTradeService($config);
$qrPayResult = $qrPay->qrPay($qrPayRequestBuilder);

// 根據(jù)狀態(tài)值進行業(yè)務(wù)處理
switch ($qrPayResult->getTradeStatus()){
 case "SUCCESS":
  echo "支付寶創(chuàng)建訂單二維碼成功:"."
---------------------------------------
";   $response = $qrPayResult->getResponse();   $qrcode = $qrPay->create_erweima($response->qr_code);   echo $qrcode;   print_r($response);      break;  case "FAILED":   echo "支付寶創(chuàng)建訂單二維碼失敗!!!"."
--------------------------
";   if(!empty($qrPayResult->getResponse())){    print_r($qrPayResult->getResponse());   }   break;  case "UNKNOWN":   echo "系統(tǒng)異常,狀態(tài)未知!!!"."
--------------------------
";   if(!empty($qrPayResult->getResponse())){    print_r($qrPayResult->getResponse());   }   break;  default:   echo "不支持的返回狀態(tài),創(chuàng)建訂單二維碼返回異常!!!";   break; }

生成的提交請求URL如下


https://openapi.alipay.com/gateway.do?app_id=2016061501500000&version=1.0&format=json&sign_type=RSA&method=alipay.trade.precreate×tamp=2016-08-26+17%3A38%3A13&auth_token=&alipay_sdk=alipay-sdk-php-20160411&terminal_type=&terminal_info=&prod_code=¬ify_url=http%3A%2F%2F123.daoqidata.com%2Fweixin%2Frawpost.php&charset=UTF-8&app_auth_token=&sign=ayYiJRZ63RomVEt8Ayz58Uiyv3y5IrbbX8CTfX6zNHkT%2Fu11U7ISUYWCXjrwrwCo2Oq2tdo%2FjtuhrBbDp5ULnTmuBBUktQDCCF53PF5yiUDGikxUPFYugeUrTg3gw4DqxOiNKM6ZB6MI0n%2F9M78a%2FnP8GtZ4WthyHIl%2B%2FozSyT4%3D


發(fā)送的json數(shù)據(jù)如下:


{
 "out_trade_no":"qrpay20160826053813582",
 "total_amount":"0.01",
 "timeout_express":"5m",
 "subject":"方倍工作室-支付寶-當(dāng)面付-掃碼支付"
}

返回的數(shù)據(jù)如下:


{
 "alipay_trade_precreate_response":{
  "code":"10000",
  "msg":"Success",
  "out_trade_no":"qrpay20160826053813582",
  "qr_code":"https://qr.alipay.com/bax00885xbhszseo9l7p404d"
 },
 "sign":"VfNTGo2WMZ+2CE1L05lNYWtFn4inHXO/tUaBZIBHN4fPlXnCvyc9IhS8S7wa3FYw23G30luEPEHkZWobnfpUjILonmExZVElHv3ylINz+Q2mQ5M8Sb/d61YPvf4Bgy1OvlrT4D3H/i3judmzEDBrOyFN9kB9vSkKaYC+b6L41Zw="
}

其中的https://qr.alipay.com/bax00885xbhszseo9l7p404d 就是二維碼鏈接地址,使用接口將其成二維碼后。
當(dāng)支付寶用戶掃碼的時候,接口通知將收到如下數(shù)據(jù)


{
 "notify_id":"4c2c04c3cc50e978d44212febe7c3f0lse",
 "seller_email":"pay***@fangbei.org",
 "notify_type":"trade_status_sync",
 "sign":"R0iRdYmSQ0+zuSUGLzkutHcR40hoOp+CcKojVBCMa1uji3rqQFe5XeHoJB1nMBCApE3zXPKhXMdLis109ngPbGy+NUEBR7YZjYuR/hXq3WXeYfZ8aiWLvloZHrF7dQWxDho/VHYexaLeqvRi/03m0HxrwhZKUOu1eS9wMgZOlqQ=",
 "trade_no":"2016082621001004750241229810",
 "buyer_id":"2088002364008751",
 "app_id":"2016061501500000",
 "gmt_create":"2016-08-26 18:20:37",
 "out_trade_no":"qrpay20160826062009757",
 "seller_id":"2088421202724253",
 "notify_time":"2016-08-26 18:20:37",
 "subject":"方倍工作室-支付寶-當(dāng)面付-掃碼支付",
 "trade_status":"WAIT_BUYER_PAY",
 "open_id":"20880044751374809757987911112575",
 "total_amount":"0.01",
 "sign_type":"RSA",
 "buyer_logon_id":"118***@qq.com"
}

當(dāng)用戶輸入密碼付款成功之后,將收到如下數(shù)據(jù)


{
 "fund_bill_list":"[{"amount":"0.01","fundChannel":"ALIPAYACCOUNT"}]",
 "subject":"方倍工作室-支付寶-當(dāng)面付-掃碼支付",
 "trade_no":"2016082621001004750241229810",
 "gmt_create":"2016-08-26 18:20:37",
 "notify_type":"trade_status_sync",
 "total_amount":"0.01",
 "out_trade_no":"qrpay20160826062009757",
 "invoice_amount":"0.01",
 "open_id":"20880044751374809757987911112575",
 "seller_id":"2088421202724253",
 "notify_time":"2016-08-26 18:20:50",
 "trade_status":"TRADE_SUCCESS",
 "gmt_payment":"2016-08-26 18:20:50",
 "seller_email":"pay***@fangbei.org",
 "receipt_amount":"0.01",
 "buyer_id":"2088002364008751",
 "app_id":"2016061501500000",
 "notify_id":"56f97611ee609f46384b188b409e75else",
 "buyer_logon_id":"118***@qq.com",
 "sign_type":"RSA",
 "buyer_pay_amount":"0.01",
 "sign":"nf/KJryACk0utqlNrnuYMiSnYw6HsxqpJPk2O5MhCZ+wZUVQbrD3sq5POO3GU7LSRoSiUUIO4JEYEL12Ek2+w3lTcLS9WEi60sYowPOcJEYGmVfNZbVR6+k7yO5au2WIkM3MKsxm2XxIB9xPMmRDACGhvqZ2BXUAQujkPk1FT0s=",
 "point_amount":"0.00"
}

3. 訂單查詢


訂單查詢的參數(shù)配置如下


////獲取商戶訂單號
$out_trade_no = trim($_POST['out_trade_no']);

//第三方應(yīng)用授權(quán)令牌,商戶授權(quán)系統(tǒng)商開發(fā)模式下使用
$appAuthToken = "";//根據(jù)真實值填寫

//構(gòu)造查詢業(yè)務(wù)請求參數(shù)對象
$queryContentBuilder = new AlipayTradeQueryContentBuilder();
$queryContentBuilder->setOutTradeNo($out_trade_no);

$queryContentBuilder->setAppAuthToken($appAuthToken);


//初始化類對象,調(diào)用queryTradeResult方法獲取查詢應(yīng)答
$queryResponse = new AlipayTradeService($config);
$queryResult = $queryResponse->queryTradeResult($queryContentBuilder);

//根據(jù)查詢返回結(jié)果狀態(tài)進行業(yè)務(wù)處理
switch ($queryResult->getTradeStatus()){
 case "SUCCESS":
  echo "支付寶查詢交易成功:"."
--------------------------
";   print_r($queryResult->getResponse());   break;  case "FAILED":   echo "支付寶查詢交易失敗或者交易已關(guān)閉!!!"."
--------------------------
";   if(!empty($queryResult->getResponse())){    print_r($queryResult->getResponse());   }   break;  case "UNKNOWN":   echo "系統(tǒng)異常,訂單狀態(tài)未知!!!"."
--------------------------
";   if(!empty($queryResult->getResponse())){    print_r($queryResult->getResponse());   }   break;  default:   echo "不支持的查詢狀態(tài),交易返回異常!!!";   break; }

最終提交的url如下


https://openapi.alipay.com/gateway.do?app_id=2016061501500000&version=1.0&format=json&sign_type=RSA&method=alipay.trade.query×tamp=2016-08-26+18%3A27%3A07&auth_token=&alipay_sdk=alipay-sdk-php-20160411&terminal_type=&terminal_info=&prod_code=¬ify_url=&charset=UTF-8&app_auth_token=&sign=eIuYJtes95quAN3X9eXbQzBa%2FCvm5QgQ0ToUsS8MSkCjhZACYpnU7ZT5MuD31lPZPFHVEjCKsdWiq4tuNtJPFPxirg7pkTiT09C%2Bz8PsUA844Y7hjkkX%2B4CVZcGtO11m3Ap0JECrtZW8hhJTE9bPY1v43X2BSL5Cp3Ulpac1FsM%3D


發(fā)送的json數(shù)據(jù)如下:


{
 "out_trade_no":"qrpay20160826053813582"
}

接收到的數(shù)據(jù)如下


{
 "alipay_trade_query_response":{
  "code":"10000",
  "msg":"Success",
  "buyer_logon_id":"118***@qq.com",
  "buyer_pay_amount":"0.01",
  "buyer_user_id":"2088002364008751",
  "fund_bill_list":[
   {
    "amount":"0.01",
    "fund_channel":"ALIPAYACCOUNT"
   }
  ],
  "invoice_amount":"0.01",
  "open_id":"20880044751374809757987911112575",
  "out_trade_no":"qrpay20160826053813582",
  "point_amount":"0.00",
  "receipt_amount":"0.01",
  "send_pay_date":"2016-08-26 17:38:58",
  "total_amount":"0.01",
  "trade_no":"2016082621001004750239053830",
  "trade_status":"TRADE_SUCCESS"
 },
 "sign":"E2MxjdAhW/EqRFNkZgy/Y//dA5Cmb54Hnqa0cjBz+ZcFTULi1lvFms93onP7cpVK/fI7YxbkZTKBPk29o4aeWKXlSYCrT92domAyqahzYCA7/5A3Msc/awALYrFOdWyJJdlncWdFRN9hx52iVRIjxvLJ0hIMVIQqEDavG28HPbo="
}

4. 訂單退款


訂單退款的參數(shù)配置如下


$out_trade_no = trim($_POST['out_trade_no']);
$refund_amount = trim($_POST['refund_amount']);
$out_request_no = trim($_POST['out_request_no']);

//第三方應(yīng)用授權(quán)令牌,商戶授權(quán)系統(tǒng)商開發(fā)模式下使用
$appAuthToken = "";//根據(jù)真實值填寫

//創(chuàng)建退款請求builder,設(shè)置參數(shù)
$refundRequestBuilder = new AlipayTradeRefundContentBuilder();
$refundRequestBuilder->setOutTradeNo($out_trade_no);
$refundRequestBuilder->setRefundAmount($refund_amount);
$refundRequestBuilder->setOutRequestNo($out_request_no);

$refundRequestBuilder->setAppAuthToken($appAuthToken);

//初始化類對象,調(diào)用refund獲取退款應(yīng)答
$refundResponse = new AlipayTradeService($config);
$refundResult = $refundResponse->refund($refundRequestBuilder);

//根據(jù)交易狀態(tài)進行處理
switch ($refundResult->getTradeStatus()){
 case "SUCCESS":
  echo "支付寶退款成功:"."
--------------------------
";   print_r($refundResult->getResponse());   break;  case "FAILED":   echo "支付寶退款失敗!!!"."
--------------------------
";   if(!empty($refundResult->getResponse())){    print_r($refundResult->getResponse());   }   break;  case "UNKNOWN":   echo "系統(tǒng)異常,訂單狀態(tài)未知!!!"."
--------------------------
";   if(!empty($refundResult->getResponse())){    print_r($refundResult->getResponse());   }   break;  default:   echo "不支持的交易狀態(tài),交易返回異常!!!";   break; }

最終提交的url如下

https://openapi.alipay.com/gateway.do?app_id=2016061501500000&version=1.0&format=json&sign_type=RSA&method=alipay.trade.refund×tamp=2016-08-26+18%3A47%3A35&auth_token=&alipay_sdk=alipay-sdk-php-20160411&terminal_type=&terminal_info=&prod_code=¬ify_url=&charset=UTF-8&app_auth_token=&sign=Y1c5qWglAQ0t3brViEtqFnIJRQMn%2Fl9vMla1xgXKcExercJopMyS2rPOHaw%2F2PJEOKJC7r9qAfDGkNq4LHzXhBrD8sxLPqImPS6aWcW9p8s%2FzC2oQCJnLfaPx6lh8veHarj4WzDayeZLA48ttoQLjuMGPrITgOXYjHHyUKdBqSs%3D


發(fā)送的json數(shù)據(jù)如下:

{
 "out_trade_no":"qrpay20160826053813582",
 "refund_amount":"0.01",
 "out_request_no":"1"
}

接收到的數(shù)據(jù)如下


{
 "alipay_trade_refund_response":{
  "code":"10000",
  "msg":"Success",
  "buyer_logon_id":"123***@qq.com",
  "buyer_user_id":"2088002364008751",
  "fund_change":"Y",
  "gmt_refund_pay":"2016-08-26 18:47:41",
  "open_id":"20880044751374809757987911112575",
  "out_trade_no":"qrpay20160826053813582",
  "refund_detail_item_list":[
   {
    "amount":"0.01",
    "fund_channel":"ALIPAYACCOUNT"
   }
  ],
  "refund_fee":"0.01",
  "send_back_fee":"0.01",
  "trade_no":"2016082621001004750239053830"
 },
 "sign":"YDNSMpX5y0rQEs0ZbfNxRFVIp8hf0W30OR74cMtwKVPO2BYee6TQC+pbnwESSZ2XSGLozTyy7o+SIa07L+FMhDv/PTt6QX1mVgQv7RhzoDkls0zDRS/5/fy9Oyj01XS1wb8Od/93iNLZDkd2yw9g0He6qGYlpcXutkmwuASd7BM="
}

關(guān)于如何開發(fā)支付寶支付中的當(dāng)面付條碼支付和掃碼支付問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。


網(wǎng)站題目:如何開發(fā)支付寶支付中的當(dāng)面付條碼支付和掃碼支付-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://weahome.cn/article/pphde.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部