需要对接以下这些钱包:
WXPAY(微信)
ALIPAY(支付宝)
LINEPAY(linePay)
PAY_PAY (PayPay)
RAKUTEN_PAY(乐天)
MER_PAY(MerPay)
AU_PAY(auPay)
DOCOMO_PAY(Dpay)
判断钱包类型
这个要根据扫码的app来判断,传递钱包类型参数。
微信支付宝那就很好说, 手头上就有app,可以直接进行测试。
剩下几个钱包的判断逻辑:
const ua = window.navigator.userAgent.toLowerCase()
if (ua.indexOf('alipay') > 0) {
// 支付宝
return 'ALIPAY'
} else if (ua.indexOf('micromessenger') > 0) {
// 微信
return 'WXPAY'
} else if (ua.indexOf('line') > 0) {
// LinePay
return 'LINEPAY'
} else if (ua.indexOf('jp.pay2.app') > 0) {
// PayPay
return 'PAY_PAY'
} else {
if (document.URL.indexOf('mercari=1') > 0) {
// MerPay
return 'MER_PAY'
} else {
return 'web'
}
}
关于paypay
一:paypay浏览器ua信息:
mozilla/5.0 (linux; android 12; mi 10 pro build/skq1.211006.001; wv) applewebkit/537.36 (khtml, like gecko) version/4.0 chrome/99.0.4844.88 mobile safari/537.36 jp.pay2.app.android/3.66.1 浏览器信息--------
国内苹果手机App Store里没有paypay app, 需要在安卓手机上翻墙下载。
二:paypay扫码之后会跳转到手机内置浏览器里,像下图这样
这种的话, 就需要联系paypay那边加白, 把你们的域名加入他们的白名单里, 才可以。
三:在国内也是可以下载paypay app的, 要是没有日本的登录账号密码。 可以使用paypay的沙箱环境
paypay沙箱环境: https://integration.paypay.ne.jp/hc/ja/articles/4414061901199-%E3%83%86%E3%82%B9%E3%83%88%E7%92%B0%E5%A2%83%E3%81%A7PayPay%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E5%88%A9%E7%94%A8%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B-
主要就是点击PayPay的标志7次 , 就会进入沙箱环境
四:登录的帐密从哪里来?
paypay登录:https://developer.paypay.ne.jp/account/signin
注册下, 然后找到
这里的usename和password可以用来登录沙箱环境,金额可以增加到200000,3个账号,完全够用的了。
登上来之后长这样:
关于paypay的大概就是这些。
其他的日本app还没有接入,后续接入后会继续更新
微信支付
import { jsSDK } from '@/libs/wxjs.js'
let opthions = {
appId: r.appId,
timeStamp: r.timeStamp,
nonceStr: r.nonceStr,
package: r.package,
signType: r.signType,
paySign: r.paySign,
Url: `${process.env.VUE_APP_HREF}/inspiry/result`
}
jsSDK(opthions)
wxjs.js
export function jsSDK (params) {
if (typeof WeixinJSBridge === 'undefined') {
if (document.addEventListener) {
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false)
} else if (document.attachEvent) {
document.attachEvent('WeixinJSBridgeReady', onBridgeReady)
document.attachEvent('onWeixinJSBridgeReady', onBridgeReady)
}
} else {
onBridgeReady(params)
}
}
function onBridgeReady (params) {
WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
'appId': params.appId, // 公众号ID,由商户传入
'timeStamp': params.timeStamp, // 时间戳,自1970年以来的秒数
'nonceStr': params.nonceStr, // 随机串
'package': params.package,
'signType': params.signType, // 微信签名方式:
'paySign': params.paySign // 微信签名
},
function (res) {
if (res.err_msg === 'get_brand_wcpay_request:ok') {
location.replace(`${params.Url}?msg=paysuccess`)
} else {
location.replace(`${params.Url}?msg=payerror`)
}
})
}