使用下面这些参数生成sign,然后调用api https://api.mch.weixin.qq.com/pay/contractorder,返回值中有一个sign,再使用返回的sign调起app支付,
signParams := map[string]string{
"appid": params.Appid,
"mch_id": params.MchID,
"contract_mchid": params.ContractMchID,
"contract_appid": params.ContractAppID,
"out_trade_no": params.OutTradeNo,
"device_info": params.DeviceInfo,
"nonce_str": params.NonceStr,
"body": params.Body,
"detail": params.Detail,
"notify_url": params.NotifyURL,
"total_fee": fmt.Sprintf("%d", params.TotalFee),
"spbill_create_ip": params.SpbillCreateIP,
"trade_type": params.TradeType,
"plan_id": params.PlanID,
"contract_code": params.ContractCode,
"request_serial": params.RequestSerial,
"contract_display_account": params.ContractDisplayAccount,
"contract_notify_url": params.ContractNotifyURL,
}
调起支付的方法,因为前置流程中没有timeStamp,这里的timeStamp是客户端生成的(没有timeStamp拉不起微信)
调起支付参数全部要后台给你,你前端自己生成timestamp就会和后端计算签名的不匹配了
线上已经集成支付,v3版本的api,流程是通的。现在集成v2版本的支付中签约出现的问题