-
當前位置:首頁 > 創(chuàng)意學院 > 技術(shù) > 專題列表 > 正文
個人對接支付寶支付的接口(個人接入支付寶接口)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于個人對接支付寶支付的接口的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com,如需咨詢相關(guān)業(yè)務請撥打175-8598-2043,或微信:1454722008
本文目錄:
一、接入支付寶支付SDK
接入支付寶支付SDK
可以說支付寶支付接入是所有SDK最好接入的,沒有之一。
客戶端不用簽名,也不用管包名,也不用管簽名文件,就接口返回訂單,把訂單交給支付寶SDK調(diào)用就行,成功或者失敗都在當前界面返回給你。你再去通知接口。
支付流程圖
官方文檔地址
!支付寶支付官方文檔地址
按照文檔說明接入SDK和相關(guān)配置,在這就不重復了
客戶端支付關(guān)鍵代碼===》支付接口的調(diào)用(調(diào)起支付彈框)
記住支付接口的調(diào)用必須在獨立的非ui線程中執(zhí)行,即需新開線程里面調(diào)用??梢韵牍俜絛emo一樣用new Thread方式。
下面我給出用Observable方式示例代碼
在PayUtils中
/**
* desc:支付寶支付
* Created by congge on 2018/8/27 17:20
* @param orderInfo 接口返回的訂單
**/
public static void aliPay(final Activity activity, final String orderInfo, final OrderListener orderListener) {
Observable.just(orderInfo)
.map(new Function () {
@Override
public String apply(String orderInfo) throws Exception {
//用戶在商戶app內(nèi)部點擊付款,是否需要一個loading做為在錢包喚起之前的過渡,這個值設置為true
return new PayTask(activity).pay(orderInfo, true);
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer () {
@Override
public void accept(String payResult) throws Exception {
orderListener.onPayResult(payResult);
}
});
}
支付結(jié)果返回處理
返回例子:
resultStatus={9000};memo={};result={{"alipay_trade_app_pay_response":{"code":"10000","msg":"Success","app_id":"2016091300503896","auth_app_id":"2016091300503896","charset":"utf-8","timestamp":"2018-08-28 17:51:11","out_trade_no":"nVElbd74TW6WnEyxQwvX8A","total_amount":"0.01","trade_no":"2018082821001004680500208879","seller_id":"2088102175487650"},"sign":"W0Hg9k4GxL8Oaxymvqk2i65WNDQxYp6HGve32ek6VjSRnymmI3GQTjpQVbZuDzvjcwQ/HIkM97PoBGAVlTmi/wiJcqDgSSDzDY7AFnNN0OcK0ehWGwKQINA4IDGh51A7yY/vYKmR0VW+2OwGhlRPPMMZtQOEqh8a9/aIijzT6ZLwy9Hl4ayG/fVKhdC1VdckF6+C25BFNp3fIxarg5tfEunm7N9iWngKCUsnP+IZz05OHdvynimgYPcBnbBERHG97GVqRT/EdBWTQyIDMc0LemScAYxJixTVgXDkRddQjzWZ7HgLdBfjs0nXY24puHudT76ERxVY+8NkoKle/QI+FA==","sign_type":"RSA2"}}
也可以自己打log看看
處理示例代碼:
//支付寶支付
PayUtils.aliPay(this, result.getSignDataStr(), new PayUtils.OrderListener() {
@Override
public void onPayResult(String payResult) {
PayResult pr = new PayResult(payResult);
String rs = pr.getResultStatus();
String r = pr.getResult();
switch (rs) {
case AliPayResultStatus.PAY_SUCCESS:
ToastUtils.show(R.string.pay_success);
//通知接口支付成功
break;
case AliPayResultStatus.PAY_PROCESSING:
case AliPayResultStatus.PAY_UNKNOWN:
ToastUtils.show(R.string.pay_fail);
//支付可能成功,要接口去查詢
break;
default:
ToastUtils.show(R.string.pay_fail);
//通知接口支付失敗,取消訂單
}
}
});
上面方法中:
//通知接口支付成功 //支付可能成功,要接口去查詢 //通知接口支付失敗,取消訂單。根據(jù)你產(chǎn)品需求要不要通知你服務器做的操作。正常是要的,用來改變訂單狀態(tài)
PayResult.class
public class PayResult {
private String resultStatus;
private String result;
private String memo;
public PayResult(String rawResult) {
if (TextUtils.isEmpty(rawResult))
return;
String[] resultParams = rawResult.split(";");
for (String resultParam : resultParams) {
if (resultParam.startsWith("resultStatus")) {
resultStatus = gatValue(resultParam, "resultStatus");
}
if (resultParam.startsWith("result")) {
result = gatValue(resultParam, "result");
}
if (resultParam.startsWith("memo")) {
memo = gatValue(resultParam, "memo");
}
}
}
@Override
public String toString() {
return "resultStatus={" + resultStatus + "};memo={" + memo
+ "};result={" + result + "}";
}
private String gatValue(String content, String key) {
String prefix = key + "={";
return content.substring(content.indexOf(prefix) + prefix.length(),
content.lastIndexOf("}"));
}
public String outOrder() {
String order = ""out_trade_no"";
if (result.contains(order)) {
String begin = result.substring(result.indexOf(order));
String ss = begin.split(",")[0];
String newS = ss.replace(""", "")
.replace("}", "")
.replace(":", "")
.replace("out_trade_no", "");
try {
return newS;
} catch (Exception e) {
e.printStackTrace();
}
}
return "";
}
/**
* @return the resultStatus
*/
public String getResultStatus() {
return resultStatus;
}
/**
* @return the memo
*/
public String getMemo() {
return memo;
}
/**
* @return the result
*/
public String getResult() {
return result;
}}
最后給下支付返回碼表
AliPayResultStatus.class
public class AliPayResultStatus {
/**
* 訂單支付成功,唯一肯定是支付成功的
*/
public static final String PAY_SUCCESS = "9000";
/**
* 正在處理中,支付結(jié)果未知(有可能已經(jīng)支付成功),請查詢商戶訂單列表中訂單的支付狀態(tài)
*/
public static final String PAY_PROCESSING = "8000";
/**
* 訂單支付失敗
*/
public static final String PAY_FAIL = "4000";
/**
* 重復請求
*/
public static final String PAY_REPEAT = "5000";
/**
* 用戶中途取消
*/
public static final String PAY_PROCESS_CANCEL = "6001";
/**
* 網(wǎng)絡連接出錯
*/
public static final String PAY_NET_ERROR = "6002";
/**
* 支付結(jié)果未知(有可能已經(jīng)支付成功),請查詢商戶訂單列表中訂單的支付狀態(tài)
*/
public static final String PAY_UNKNOWN = "6004";}
還有一個直接棄用沙箱調(diào)試模式,否則提示支付失敗也有可能不知道錯在那,怕金額大,和接口商量,測試服務器就用0.01測試。
二、如何把支付寶接口集成到個人網(wǎng)站
具體操作流程如下。
1,注冊支付寶,成功后去支付寶網(wǎng)站簽約,要有自己的網(wǎng)站,并且已經(jīng)備案。
2,若簽約成功,支付寶會提供支付接口。
3,支付寶會按比例在你的收入中提取手續(xù)費,大約4%。
三、個人想申請支付寶微信支付接口
不可以,支付接口都需要企業(yè)認證的,你可以借用別人的,個人是無法申請的。
四、個人如何申請支付寶即時到帳接口
支付寶現(xiàn)在只提供支付寶轉(zhuǎn)支付寶的即時到賬功能,這個是不需要申請的。
支付寶轉(zhuǎn)銀行卡:
1、
電腦操作可選2小時到賬或次日到賬。
2、手機客戶端操作則是2小時或次日,視收款銀行定。
支付寶要等到賬后一兩個小時才顯示到賬。
以上就是關(guān)于個人對接支付寶支付的接口相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
抖音pc端如何添加商品鏈接(抖音pc端如何添加商品鏈接視頻)