MUI 支付宝支付接入
沙箱測(cè)試地址:https://openhome.alipay.com/platform/appDaily.htm
1資源下載地址:https://docs.open.alipay.com/54/106370/? --下載手機(jī)網(wǎng)頁支付demo .取出alipay-sdk-java20170307171631.jar 放入工程
app支付各接口說明:https://docs.open.alipay.com/api_1/alipay.trade.refund
2服務(wù)端配置:
########支付寶支付配置############商戶appid
zfb.APPID =
#私鑰 pkcs8格式的
zfb.RSA_PRIVATE_KEY =
#服務(wù)器異步通知頁面路徑 需http://或者h(yuǎn)ttps://格式的完整路徑,不能加?id=123這類自定義參數(shù),必須外網(wǎng)可以正常訪問
zfb.notify_url =
#頁面跳轉(zhuǎn)同步通知頁面路徑 需http://或者h(yuǎn)ttps://格式的完整路徑,不能加?id=123這類自定義參數(shù),必須外網(wǎng)可以正常訪問 商戶可以自定義同步跳轉(zhuǎn)地址
zfb.return_url =
#請(qǐng)求網(wǎng)關(guān)地址
zfb.URL = https://openapi.alipaydev.com/gateway.do
#編碼
zfb.CHARSET = UTF-8
#返回格式
zfb.FORMAT = json
#支付寶公鑰
zfb.ALIPAY_PUBLIC_KEY =
#RSA2
zfb.SIGNTYPE = RSA2
########支付寶支付配置###########
3服務(wù)端獲取訂單: 參考地址:https://docs.open.alipay.com/54/106370/? ? 其他退款,查看,下載對(duì)賬單等參考地址:https://docs.open.alipay.com/204/105297/
String out_trade_no = request.getParameter("orderId");String subject = request.getParameter("orderName");
String total_amount=request.getParameter("ordreMoney");
System.out.println("訂單號(hào)ID:"+out_trade_no);
/* // 商品描述,可空
String body = "沒有描述";
// 超時(shí)時(shí)間 可空
String timeout_express="2000m";
// 銷售產(chǎn)品碼 必填
String product_code="QUICK_WAP_PAY";*/
System.out.println(zfb.toString());
AlipayClient alipayClient = new DefaultAlipayClient(zfb.getURL(),
zfb.getAPPID(),
zfb.getRSA_PRIVATE_KEY(),
zfb.getFORMAT(),
zfb.getCHARSET(),
zfb.getALIPAY_PUBLIC_KEY(),
zfb.getSIGNTYPE());
AlipayTradeAppPayRequest alipay_request = new AlipayTradeAppPayRequest();
//SDK已經(jīng)封裝掉了公共參數(shù),這里只需要傳入業(yè)務(wù)參數(shù)。以下方法為sdk的model入?yún)⒎绞?model和biz_content同時(shí)存在的情況下取biz_content)。
AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
model.setBody("我是測(cè)試數(shù)據(jù)");
model.setSubject("App支付測(cè)試Java");
model.setOutTradeNo("6786785675674564");
model.setTimeoutExpress("30m");
model.setTotalAmount("0.01");
model.setProductCode("QUICK_MSECURITY_PAY");
alipay_request.setBizModel(model);
alipay_request.setNotifyUrl("商戶外網(wǎng)可以訪問的異步地址");
try {
//這里和普通的接口調(diào)用不同,使用的是sdkExecute
AlipayTradeAppPayResponse response = alipayClient.sdkExecute(alipay_request);
String order = response.getBody();
System.out.println("訂單");
System.out.println(order);//就是orderString 可以直接給客戶端請(qǐng)求,無需再做處理。
return new ReturnVO(order);
} catch (AlipayApiException e) {
e.printStackTrace();
}
return new ReturnVO(false);
4 mui端調(diào)用支付寶支付sdk配置及代碼 參考地址:http://ask.dcloud.net.cn/article/71
配置:
manifes.json增加
"permissions": >>
"Payment":{
"description": "支付寶支付"
},
"plus">>"distribute">>
?{"plugins":{"payment":{"alipay":{"description":"支付寶支付","scheme":""}}},
?
代碼:mui.init({ ?
? ? ? ? swipeBack:true //啟用右滑關(guān)閉功能 ?
? ? });?
? ?
? ?
? ? //獲取支付通道
? ? var channel=null;
function plusReady(){
? ? // 獲取支付通道
? ? plus.payment.getChannels(function(channels){
? ? ? ? channel=channels[0];
? ? },function(e){
? ? ? ? alert("獲取支付通道失敗:"+e.message);
? ? });
}
document.addEventListener('plusready',plusReady,false);
?
var ALIPAYSERVER='https://openapi.alipaydev.com/gateway.do?'; ?
? ? var WXPAYSERVER='http://demo.dcloud.net.cn/helloh5/payment/wxpay.php?total=';?
? ? var PAYSERVER='';
//發(fā)起支付請(qǐng)求
function pay(id){
? ? // 從服務(wù)器請(qǐng)求支付訂單
? ?
? ? if(id=='alipay'){
? ? ? ? PAYSERVER=ALIPAYSERVER;
? ? }else if(id=='wxpay'){
? ? ? ? PAYSERVER=WXPAYSERVER;
? ? }else{
? ? ? ? plus.nativeUI.alert("不支持此支付通道!",null,"捐贈(zèng)");
? ? ? ? return;
? ? }
? ? var xhr=new XMLHttpRequest();
? ? xhr.onreadystatechange=function(){
? ? ? ? switch(xhr.readyState){
? ? ? ? ? ? case 4:
? ? ? ? ? ? if(xhr.status==200){
? ? ? ? ? ? ? ? plus.payment.request(channel,xhr.responseText,function(result){
? ? ? ? ? ? ? ? ? ? plus.nativeUI.alert("支付成功!",function(){
? ? ? ? ? ? ? ? ? ? ? ? back();
? ? ? ? ? ? ? ? ? ? });
? ? ? ? ? ? ? ? },function(error){
? ? ? ? ? ? ? ? ? ? plus.nativeUI.alert("支付失敗:" + error.code);
? ? ? ? ? ? ? ? });
? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? alert("獲取訂單信息失敗!");
? ? ? ? ? ? }
? ? ? ? ? ? break;
? ? ? ? ? ? default:
? ? ? ? ? ? break;
? ? ? ? }
? ? }
? ? xhr.open('GET',PAYSERVER);
? ? xhr.send();
}
?
//添加列表項(xiàng)的點(diǎn)擊事件
mui('.mui-input-group').on('tap',"#pay_sub", function(e) {
console.log(bathpath+'/zfb/pay');
$.getJSON({
? ? ? ? url:bathpath+'/zfb/pay',
? ? ? ? type: 'post',
? ? ? ? data:{
? ? orderId:'999999999',
orderName:'測(cè)試商品1',
ordreMoney:'0.01'
}
? ? }).done(function (result) {
console.log(result.content);
ALIPAYSERVER=ALIPAYSERVER+result.content;
pay('alipay');
? ? }).fail(function (e) {
? ? ? ? console.error(e.statusText)
? ? }).always(function () {
? ?
? ? });
});
轉(zhuǎn)載于:https://www.cnblogs.com/liuq1991/p/8244175.html
總結(jié)
以上是生活随笔為你收集整理的MUI 支付宝支付接入的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Adb+.net 实现微信跳一跳自动化
- 下一篇: 【uoj#139】[UER #4]被删除