React Native 版本执行0.57的规则
在实际项目中走支付流程的时候,会加入很多预选项目,比如礼品卡结算,优惠券的使用,积分的抵扣
// 下单
_generatOrders() {
this.setState({
isLoading: true,
})
Fetch(requestUrl.generatOrders, {
"userId": UserInfo.id,
"addressId": this.state.isPickUp == "0" ? this.state.orderInfo.addMap.id : '',// 收货地址id
"invoicetype": this.state.invoice.invoicetype,// 发票类型 0不开 1个人 2公司
"taitou": this.state.invoice.taitou,// 发票taitou
"shibiehao": this.state.invoice.shibiehao,// 发票识别码
"sellerId": UserInfo.agentFlag == '1' ? UserInfo.id : '0',// 店铺id
"dis": "0",// 运营商id
"couponId": this.state.orderInfo.maxCoupon ? this.state.orderInfo.maxCoupon.id : '',// 优惠券关联表id
"isGift": this.state.isGift,// 1使用礼品卡支付 0不用
"goodsId": this.state.goodsJson,// 商品信息
"isVipBean": this.state.isJifen,// 1使用积分 0不用
"model": this.state.source == "Operator" ? '1' : "0",// 0:正常订单 1:联通卡订单
"model_type": "0",// 0:正常订单 1:团购订单
"remarks": this.state.defaultVal ? this.state.defaultVal : "",
"isPickUp": this.state.isPickUp,// 是否自提 0不是 1是
"shopCode": this.state.isPickUp == "1" ? this.state.orderInfo.addMap.agent_num ? this.state.orderInfo.addMap.agent_num : this.state.agent_num : '',// 自提门店的编码
"fromType": this.state.source == "qianggou" ? '1' : "0",// 是否为抢购 0不是 1是
"qiangGouActivityId": this.state.source == "qianggou" ? this.state.activityId : '',// 抢购活动id
"isFinal": this.state.isFinal ? this.state.isFinal : "",
"finalOrderId": this.state.YusorderId ? this.state.YusorderId : "",
}).then(data => {
console.log(data)
if (data.status == "SUCCESS") {
// data.data={
// goodsSum:129800,
// orderId:"20190109170930402",
// payInfoId:"98ec1b5089424f7fb6fc9c78c7230665",
// pay_model:0
// }
this.state.source == 'cart' && this.deleteGoods();
if (data.data.goodsSum == 0) {
this.unpickService(data.data);
} else {
this.setState({
isLoading: false,
})
this.props.navigation.navigate("Pay", { "payData": data.data })
}
} else if (data.status == "ERROR") {
this.setState({
isLoading: false,
})
ToastShow({ "text": "下单失败" })
} else if (data.status == "9") {
this.setState({
isLoading: false,
})
ToastShow({ "text": "该商品已到达购买数量上线或库存不足!" })
} else {
this.setState({
isLoading: false,
})
}
})
}
// 支付金额为0时的支付方式 也就是礼品卡支付
unpickService(payData) {
// payData={
// goodsSum:129800,
// orderId:"20190109170930402",
// payInfoId:"98ec1b5089424f7fb6fc9c78c7230665",
// pay_model:0
// }
Fetch(requestUrl.unpickService, {
orderId: payData.orderId,
attach: payData.payInfoId,
status: "c010102",
model_type: this.state.source == 'qianggou' ? "1" : "0",
}).then(data => {
console.log(data, "支付金额为0时")
if (data.status == "SUCCESS") {
this.setState({
isLoading: false,
})
this.props.navigation.navigate("PaySuccess", { "payData": payData, source: 'pay' });
} else {
this.setState({
isLoading: false,
})
this.props.navigation.navigate("OrderDetail", { orderId: payData.orderId, source: 'pay' })
}
})
}
// 删除购物车商品
deleteGoods() {
let ids = [];
let num = 0;
for (let key in this.state.goodsJson) {
ids.push(key);
num += this.state.goodsJson[key].num
}
Fetch(requestUrl.delectShopping, {
"userId": UserInfo.id,
"ids": ids
}).then(data => {
console.log(data)
if (data.status == "SUCCESS") {
DeviceEventEmitter.emit('ShopNum', (CartNum - num));
}
})
}
}
礼品卡支付的时候,假如余额不如了,还是要走正常的支付流程,如果支付成功,改变订单状态,跳到支付成功的页面,把后台返回的商家支付签名等等一些其他的信息传到收银台页面唤起微信支付,支付宝支付,花呗支付。。。