线上 --支付宝 微信-账期
- 1,订单和钱 生成支付单 —成功 ,
- 2,(输入密码后)生成支付流水单号(如果是账期支付)— 支付结果查询(在线支付)
- 3,
=—调起微信支付—
// 将该app注册到微信
msgApi = WXAPIFactory.createWXAPI(activity, null)
msgApi!!.registerApp(wxOrderDao.appid)
if (!msgApi!!.isWXAppInstalled) {
ToastUtil.showToast(“请先安装微信”)
return
}
//调起支付
val request = PayReq()
request.appId = wxOrderDao.appid
request.partnerId = wxOrderDao.mch_id
request.prepayId = wxOrderDao.prepay_id
request.packageValue = “Sign=WXPay”
request.nonceStr = wxOrderDao.nonce_str
request.timeStamp = wxOrderDao.timestamp
request.sign = wxOrderDao.sign
// request.extData = wxOrderDao.trade_type
TLog.i(request.sign)
msgApi!!.sendReq(request)
when (resp.errCode) {
0 -> RxBus.get().post(PayResultEntity().apply {
code = resp.errCode
})
-2 -> ToastUtil.showToast("已取消支付")
-1 -> {
ToastUtil.showToast("appid或签名不匹配")
TLog.i(resp.errStr + resp.errCode)
}
else -> ToastUtil.showToast("未知错误${resp.errCode}...")
支付成功---成功页面
取消支付---
支付错误状态
3,调起支付宝支付—
/**
* 调起支付宝支付
*/
fun pay(activity: Activity, orderSign: String, payListener: PayResultListener?) {
Observable.create(ObservableOnSubscribe<Map<String, String>> {
// 构造PayTask 对象
val alipay = PayTask(activity)
// 调用支付接口,获取支付结果
val result = alipay.payV2(orderSign, true)
it.onNext(result)
it.onComplete()
})
.subscribeOn(Schedulers.io())
.unsubscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe {
/**
* 对于支付结果,请商户依赖服务端的异步通知结果。同步通知结果,仅作为支付结束的通知。
*/
val payResult = PayResult(it)
val resultStatus = payResult.resultStatus
// 判断resultStatus 为9000则代表支付成功
if (TextUtils.equals(resultStatus, "6001")) {
ToastUtil.showToast("支付取消")
} else if (TextUtils.equals(resultStatus, "6002")) {
ToastUtil.showToast("网络连接出错")
} else { // 检测真实的支付状态
payListener?.payResult()
}
}
}
**4---支付结果查询(在线支付)**
线下支付 先获取账单信息 收款账号信息等
离线支付结果查询
获取支付结果---送货时间,支付金额,付款信息,订单号,物流方式,支付方式等
线下(转账,汇票,货到付款)(比较简单)
直接生成账单–账单信息–付款确认后—查询账单信息