最近在做第三方支付功能,其中支付寶用了條碼支付這種高大上的新支付方式,話說還有比較常見的是支付寶掃碼支付,這兩種有什麼區別呢,很簡單,就是掃碼支付是消費者用手機主動掃碼再支付,條碼支付是商家用掃碼槍主動掃碼再支付。那麼為何選擇條碼支付呢,因為這個速度快,從掃消費者手機上的條碼或***,到支付完成,那是瞬間的事,不過要是觸發了需要密碼的時候,還是需要消費者在手機上輸入支付密碼後才能完成消費的。
大致流程就是這樣,現在貼出各api我的呼叫示例吧:
//////扣款
//////
支付日誌
///public
void pay(mall_paylog paylog)
;
var result =getaopclient(paylog.paytype.paysetting).execute(payrequest);
switch
(result.code)
,交易號,錯誤資訊:
", paylog.id, result.tradeno, result.submsg));
throw
new mallexception(exceptioncode.pay_notcompleted, "
支付寶條碼支付失敗:
" +result.submsg);}}
//////服務端查詢支付狀態
//////
0:進行中,1:已完成,2:已取消
public
intgetservicepaystate(mall_paylog paylog)
;
var result =getaopclient(paylog.paytype.paysetting).execute(payrequest);
switch
(result.code)
return1;
}return0;
default
:
//備註儲存失敗資訊
paylog.summary =result.submsg;
paylog.update();
return2;}}
///申請退款:///撤銷支付(撤銷還未支付的付款)
//////
///public
void
reversepay(mall_paylog paylog)
;
var result =getaopclient(paylog.paytype.paysetting).execute(payrequest);
switch
(result.code)
}
///需要特殊處理的是,當需要消費者在手機端輸入支付金鑰時,必須等待消費者輸完密碼完成支付後手動查詢支付的最新狀態,這個也可以做成自動重新整理狀態,我是做成手動重新整理的,還有就是金鑰的生成需要四個dll,在安裝的openssl目錄裡找到///退款
//////
支付寶交易號
///退款金額
//////
public
void refundpay(string tradeno, decimal refundamount, string
if (refundamount < 0
)
if (string
var bizcontent = new
jsonobject();
//支付寶交易號
bizcontent.put("
trade_no
", tradeno);
//退款金額
bizcontent.put("
refund_amount
", refundamount.tostring("f"
));
//退款原因
bizcontent.put("
refund_reason
", "
o2o當面付退款");
var payrequest = new alipaytraderefundrequest ;
switch
(result.code)
}
這四個dll放到你的程式根目錄下就可以了,然後生成金鑰就用這個函式:
//////執行openssl命令
//////
命令public
void executeopensslcommand(params
string
commands)})}
支付寶支付
1 呼叫支付寶介面 具體 i 呼叫alipaysubmit.buildrequestpara 方法生成要請求給支付寶的引數陣列。呼叫alipaycore.parafilter sparatemp 除去陣列中的空值和簽名引數。之後,呼叫buildrequestmysign spara 生成簽名結果。最...
支付寶支付
1 支付寶開發 支付寶開放平台 支付寶開發者文件 生成簽名 python alipay adk 直接使用第三方sdk python alipay sdk 1 登入開發者中心,熟悉 電腦 支付 整體流程 訪問 支付寶開發平台 登入,可以訪問開發者中心 2 第一步 建立應用 這裡使用沙箱環境測試 1 沙...
整合 支付寶支付
第一步,看官方文件 戳這裡 第二步,就是上圖,比如要匯入哪些內容.其中,總結一點自己一直的錯誤資訊 查了很多資料,沒管用,最後終於找到良方。解決辦法 把openssl這個檔案匯入到了這個工程目錄下 專案名稱 公共類 工具 第三方 支付寶sdk openssl 中間隔了三個資料夾,那麼在header ...