这里只说说 jsapi
微信支付微信的服务器应该有两个处理方, 一个是微信后台, 一个是财付通后台, 所以提交的数据也分成两份, 一份是微信后台数据, 这里说执行JS调起支付的参数, 一份是财付通后台数据, 字段名为package, package就是商户订单信息, package作为微信后台数据的一个字段.
微信支付2.0版本发起支付时只作了一次提交到后台, 先拼成package, 作为微信后台参数, 发起一次提交.
微信支付3.0版本发起支付时作了两次提交到后台, 先将package提交到后台, 生成预订单, 返回prepay_id=xxxx作为package, 作为微信后台参数再提交.
参考
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6