https://www.nnbbxx.net/post-6461.html
人人商城打包app的教程,需要准備的東西:
1:人人商城v3的一套源碼,在設置中配置好app微信支付的相關參數
2:准備好安卓證書和簽名,推薦一個在線生成證書:http://www.applicationloader.net/appuploader/keystore.php,證書獲取簽名工具:gensignature (自行查閱使用方法)
3:微信開放平台:https://open.weixin.qq.com/ 注冊 移動應用 ,開通微信支付,需要開發者認證
4:這里用到的打包軟件是:HbuilderX
在HbuilderX使用:原生app–雲打包,在sdk配置中的 微信分享和微信支付上填寫你申請的appid
1:請求頭中添加app標示,否則會識別成H5,在源碼視圖中搜索 “plus” :在plus中添加一個配置項
“useragent” : { “value” : ” CK 2.0 “, “concatenate” : true },
2:在sitemap.json中里面的page替換一下,不加上去的話會出現兩個標題欄的情況
“pages”:[
{
“webviewId”: “__W2A__shop.klcnsc.com”,//首頁
“matchUrls”: [
{
“href”: “https://shop.klcnsc.com/app/index.php?i=2&c=entry&m=ewei_shopv2&do=mobile”
}, {
“href”: “https://shop.klcnsc.com/app/index.php?i=2&c=entry&m=ewei_shopv2&do=mobile”
}
],
“webviewParameter”: {
“titleNView”: false,
“statusbar”: {
“background”: “#f7f7f7”
}
}
},
{
“webviewId” : “common”,
“matchUrls” : [
{
“hostname” : “R:.”,
“pathname” : “R:.”
}
],
“webviewParameter” : {
“titleNView” : false,
“statusbar” : {
“style” : “dark”,
“background” : “#F7F7F7”
}
},
“easyConfig” : {
“quit” : {
“toast” : {
“showFeedback” : false
}
}
}
}
]
微信分享
分享的頁面文件路徑:ewei_shopv2/template/mobile/default/headmenu.html
可以看到有一個分享,添加一個點擊事件
//微信分享
function share(){
if(navigator.userAgent.indexOf(“Html5Plus”) > -1) {
//5+ 原生分享
window.plusShare({
title: “應用名字”,//應用名字
content: document.title,
href: location.href,//分享出去后,點擊跳轉地址
thumbs: [“https://xxxxx/xxx.jpg”] //分享縮略圖
}, function(result) {
//分享回調
});
} else {
//原有wap分享實現
}
}
微信支付
微信支付會稍微復雜一點,
1:
首先要先准備好生成訂單的接口,github示例代碼:https://github.com/dcloudio/H5P.Server/tree/master/payment/wxpayv3,記得修改WxPay.Config.php文件中的配置參數
2:
Hbuilder官方文檔中有實例代碼,在基礎上做了修改支付頁面在:ewei_shopv2/template/mobile/default/order/pay.html
底部加上官方的示例代碼:
var channel=null;
// 1. 獲取支付通道
function plusReady(){ //uni-app中將此function里的代碼放入vue頁面的onLoad生命周期中
// 獲取支付通道
plus.payment.getChannels(function(channels){
channel=channels[0];
},function(e){
alert(“獲取支付通道失敗:”+e.message);
});
}
document.addEventListener(‘plusready’,plusReady,false);//uni-app不需要此代碼
var ALIPAYSERVER=’http://demo.dcloud.net.cn/helloh5/payment/alipay.php?total=’;
//這里的微信支付改成你剛才的生成訂單的接口
var WXPAYSERVER=’http://demo.dcloud.net.cn/helloh5/payment/wxpay.php?total=’;
// 2. 發起支付請求
function pay(id){
// 從服務器請求支付訂單
var PAYSERVER=”;
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();
}
在微信支付位置添加上你的點擊事件 ,事件就是 pay(‘wxpay’) ,
3:
在首頁待支付訂單進入的時候會出現錯誤支付失敗 ,錯誤代碼62000的情況,加上解決辦法在 var channel=null; 后面添加一個加載函數就解決錯誤代碼62000的情況
$(function () {
plus.payment.getChannels(function(channels){
channel=channels[0];
},function(e){
alert(“獲取支付通道失敗:”+e.message);
});
})
4:
還有一個情況就是支付的訂單號的問題,兩邊訂單號要統一所以生成訂單的時候的url中記得吧 當前訂單號 傳過去,生成訂單,否則訂單會出現不能正常退款的問題
5:
支付成功之后要發送請求修改訂單狀態和跳轉,在你的支付成功的函數中修改代碼直接加上,路徑自行修改i的值和域名
window.location.href=“https://xxx.com/app/index.php?i=2&c=entry&m=ewei_shopv2&do=mobile&r=order.pay.complete&oid={$order[‘id’]}&type=wechat”
修改函數位置在ewei_shopv2/core/mobile/order/pay.php 這個的 complete 函數,可以刪除 $ispeerpay的相關判斷和判斷中的內容,有點忘記了,不行的話自行打印調整修改代碼
到此app的配置就完成了,一些細節方面可能寫的不夠細致,可以在基礎上加上自己的拓展和細節上的東西, 這個只是實現了功能,能正常分享支付,很多東西還是要自己拓展。
支付寶
支付寶大同小異:https://github.com/dcloudio/H5P.Server/tree/master/payment/alipayrsa2
生成訂單的sdk下載來保存好,就改個支付參數就行了 其他的不用做修改,支付成功的時候,我是把它放在和微信同一個方法,就更改一下支付的類型就行了,支付寶是22,微信是21,這就成功了,退款的也是微調代碼就能使用,具體剩下的就自己調試了
