MUI 支付寶支付接入

沙箱測試地址:https://openhome.alipay.com/platform/appDaily.htmphp

1資源下載地址:https://docs.open.alipay.com/54/106370/  --下載手機網頁支付demo .取出alipay-sdk-java20170307171631.jar 放入工程java

app支付各接口說明:https://docs.open.alipay.com/api_1/alipay.trade.refundexpress

2服務端配置:json

########支付寶支付配置###########
#商戶appid
zfb.APPID =
#私鑰 pkcs8格式的
zfb.RSA_PRIVATE_KEY =
#服務器異步通知頁面路徑 需http://或者https://格式的完整路徑,不能加?id=123這類自定義參數,必須外網能夠正常訪問
zfb.notify_url =
#頁面跳轉同步通知頁面路徑 需http://或者https://格式的完整路徑,不能加?id=123這類自定義參數,必須外網能夠正常訪問 商戶能夠自定義同步跳轉地址
zfb.return_url =
#請求網關地址
zfb.URL = https://openapi.alipaydev.com/gateway.do
#編碼
zfb.CHARSET = UTF-8
#返回格式
zfb.FORMAT = json
#支付寶公鑰
zfb.ALIPAY_PUBLIC_KEY =
#RSA2
zfb.SIGNTYPE = RSA2

########支付寶支付配置###########

3服務端獲取訂單: 參考地址:https://docs.open.alipay.com/54/106370/    其餘退款,查看,下載對帳單等參考地址:https://docs.open.alipay.com/204/105297/api

 String out_trade_no = request.getParameter("orderId");
String subject = request.getParameter("orderName");
String total_amount=request.getParameter("ordreMoney");
System.out.println("訂單號ID:"+out_trade_no);

/* // 商品描述,可空
String body = "沒有描述";
// 超時時間 可空
String timeout_express="2000m";
// 銷售產品碼 必填
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已經封裝掉了公共參數,這裏只須要傳入業務參數。如下方法爲sdk的model入參方式(model和biz_content同時存在的狀況下取biz_content)。
AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
model.setBody("我是測試數據");
model.setSubject("App支付測試Java");
model.setOutTradeNo("6786785675674564");
model.setTimeoutExpress("30m");
model.setTotalAmount("0.01");
model.setProductCode("QUICK_MSECURITY_PAY");
alipay_request.setBizModel(model);
alipay_request.setNotifyUrl("商戶外網能夠訪問的異步地址");
try {
//這裏和普通的接口調用不一樣,使用的是sdkExecute
AlipayTradeAppPayResponse response = alipayClient.sdkExecute(alipay_request);
String order = response.getBody();
System.out.println("訂單");
System.out.println(order);//就是orderString 能夠直接給客戶端請求,無需再作處理。
return new ReturnVO(order);
} catch (AlipayApiException e) {
e.printStackTrace();
}
return new ReturnVO(false);
4 mui端調用支付寶支付sdk配置及代碼 參考地址:http://ask.dcloud.net.cn/article/71
配置:

manifes.json增長服務器

"permissions": >>app

    "Payment":{異步

      "description": "支付寶支付"post

    },測試

"plus">>"distribute">>

     {"plugins":{"payment":{"alipay":{"description":"支付寶支付","scheme":""}}},

 

代碼:

mui.init({  

        swipeBack:true //啓用右滑關閉功能  

    }); 

   

   

    //獲取支付通道

    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='';

//發起支付請求

function pay(id){

    // 從服務器請求支付訂單

   

    if(id=='alipay'){

        PAYSERVER=ALIPAYSERVER;

    }else if(id=='wxpay'){

        PAYSERVER=WXPAYSERVER;

    }else{

        plus.nativeUI.alert("不支持此支付通道!",null,"捐贈");

        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();

}

 

//添加列表項的點擊事件

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:'測試商品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 () {

   

    });

});

相關文章
相關標籤/搜索