App支付、小程序支付、h5(微信端)支付javascript
APP支付(內置)java
appPay.jsweb
/** * 5+App支付,僅支持支付寶以及微信支付 * * 支付寶Sdk集成,微信sdk未集成 * * @param : provider(String) ->被支付方 * @param : orderInfo(String) ->訂單信息 * @param : success,fail(Json) ->回調後的json信息 * */ const mPay = (provider, orderInfo, success, fail) => ( uni.requestPayment({ provider, orderInfo, //訂單數據 success(res) { success(JSON.stringify(res)); }, fail(err) { fail(JSON.stringify(err)); } }); ) export default mPay;
微信小程序支付(內置)npm
mPay.jsjson
/** * 微信小程序支付,僅支持微信支付(後續可能集成網頁支付寶支付web-view) * * @param : provider(String) ->付款商家 * @param : timeStamp(String) ->時間戳(當前支付時間) * @param : nonceStr(String) ->支付密匙 * @param : packages(String) ->支付id * @param : signType(String) ->加密方式(默認MD5) * @param : paySign(String) * * * * 小程序支付調用 * * wePay(provider, timeStamp, nonceStr, packages, signType, paySign,res=>{},fail=>{}) */ const wePay = (provider, timeStamp, nonceStr, packages, signType, paySign,success,fail) => ( uni.requestPayment({ provider, timeStamp, nonceStr, package: packages, signType, paySign, success(res) { success(JSON.stringify(res)); }, fail(err) { fail(JSON.stringify(err)) } }); ) export default wePay;
公衆號支付(若是使用微信官方weixin-js-sdk,請使用跨端兼容方案)小程序
(須要引入模塊:jweixin-module),詳情見yarn以及npm安裝微信小程序
pPay.jsapi
/* 微信支付方法(uni-app h5)適用 獲取微信加簽信息 @param{data}:獲取的微信加簽 @param{res}:成功回調 @param{fail}:失敗回調 @warn:由於package爲嚴格模式下的保留字,不能用做變量. @use wPay({ appId, timeStamp, nonceStr, signature, package, paySign },res=>{ console.log('調用成功!'); },fail=>{ console.log('調用失敗!'); }) */ const wx = require('jweixin-module');
const wexinPay = (data, cb, errorCb) => { let [appId, timestamp, nonceStr, signature, packages, paySign] = [data.appId, data.timeStamp, data.nonceStr, data.signature, data.package, data.paySign ]; wx.config({ debug: false, // 開啓調試模式,調用的全部api的返回值會在客戶端alert出來,若要查看傳入的參數,能夠在pc端打開,參數信息會經過log打出,僅在pc端時纔會打印。 appId, // 必填,公衆號的惟一標識 timestamp, // 必填,生成簽名的時間戳 nonceStr, // 必填,生成簽名的隨機串 signature, // 必填,簽名,見附錄1 jsApiList: ['chooseWXPay'] // 必填,須要使用的JS接口列表,全部JS接口列表見附錄2 }); wx.ready(function() { wx.chooseWXPay({ timestamp, // 支付簽名時間戳,注意微信jssdk中的全部使用timestamp字段均爲小寫。但最新版的支付後臺生成簽名使用的timeStamp字段名需大寫其中的S字符 nonceStr, // 支付簽名隨機串,不長於 32 位 'package': packages, // 統一支付接口返回的prepay_id參數值,提交格式如:prepay_id=***) signType: 'MD5', // 簽名方式,默認爲'SHA1',使用新版支付需傳入'MD5' paySign, // 支付簽名 success(res) { // 支付成功後的回調函數 cb(res); }, fail(res) { errorCb(res); } }); }); wx.error(function(res) { // config信息驗證失敗會執行error函數,如簽名過時致使驗證失敗,具體錯誤信息能夠打開config的debug模式查看,也能夠在返回的res參數中查看,對於SPA能夠在這裏更新簽名。 /*alert("config信息驗證失敗");*/ }); } export default wexinPay;
關於H5詳見微信官方WX-JS-SDK:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115微信