简要描述:
推送方式为POST,Content-Type:application/json,
统一的数据格式:
{
type:0电影订单、1生活卡券订单、2返利商品订单、3外卖订单、4吃喝玩乐订单、5点餐订单,
data:{对应的业务数据}
}
有重发机制,如果接收推送数据接口返回的http状态不是200,则会按一定的间隔时间重发3次,如果都没有成功,则记录为失败,等对接方通知我们接口正常了以后可以重新推送,金额单位为元,保留两位小数点 注:贵公司不用返回任何参数做标记,http状态为200我方视为成功。请贵公司在接收到推送成功的确认后,确保及时处理相关响应。由于推送一旦成功,系统无法进行重新推送。因为如果出现重新推送的情况,可能导致额外的退款操作,因此,请确保在推送成功后,避免出现不必要的退款。
电影票回调设置:在创建订单(/api/movie/create_order2)接口的pushUrl参数,回调推送地址(如果有值,订单相关回调我方将推送到这个地址)
电影票订单推送数据 样例state电影票状态枚举:0待支付,1已支付,4出票成功,7出票失败(退款),8超时未付(取消)orderState吃喝玩乐状态枚举:0待支付,1已支付,2、3已出票,4订单成功(核销),5、6、7出票失败(退款),8超时未付(取消) ,9部分退款orderState购物订单状态枚举:0已支付,1已成团,2确认收货,3审核成功,4审核失败,5已经结算,8无佣金订单点餐回调设置:在下单(/api/kfc/create_order)接口的pushUrl参数,回调推送地址(如果有值,订单相关回调我方将推送到这个地址)
点餐订单推送出单成功数据样例orderState点餐订单状态枚举:0待支 付,1已支付,2等待出码、3已出码(订单成功),4订单失败,5订单取消,6订单退款,7超时未付(取消),8部分退款 -注:只有涉及到订单退款操作才会有refundAmount、refundId、refundProducts相关退款字段,其他订单状态是没有的。orderState卡券订单状态枚举:0待支付,1已支付,2、3正在充值、4订单成功,5、6订单失败,7订单退款,8超时未付(取消)签名机制
对POST推送的json内容加上Unix时间戳(秒级),使用我们的RSA私钥做SHA256withRSA签名,接收方使用我们的公钥对内容和签名做校验;推送的数据有两部分,body里面全部是json格式数据,推送的Header里面有两个字段:sign 签名,timestamp 时间戳(秒级),参与签名的内容为:json数据+timestamp,用我们的RSA公钥对内容和签名做校验即可,字符编码使用UTF-8。
校验结果=VerifyWithSHA256($"{pushJson}{timestamp}",sign, YppPublicKey, Encoding.UTF8)我们的公钥(pem格式,PKCS1):
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5J4IT8QyMcqAXvWYD55N1rpRX5LxRail/Vt+slsFaSPOTGDONMqXil6dBswNPB4Du3Id8fgdjagcQsm/e5CpLXb1l+vf5/X2W8bQLVZnzhrbFl1lJErWYLrZQ6/IBwPlswHf7lYCYuThcToXKHRp/r7QHdMX6hp00Mcr2SGcqltdfgC9SMKnP8WjZnLP+m7BYtydvN2R5BiMnTf2i/8x/WQUM92KwbYGp8ISUfU2+PBcVw7kNaMngzElfWZTK0fvfj/nKGCWAN3Jx4b14djSQi1lKO56UD5J8oBGLw9nkwDjgTOqqeeSmPzU2Z+ILpECcsbFyVaLEvwSjBDfnx8PJQIDAQAB签名校验测试
签名内容:
测试abc
RSA签名:
PpOkZ5c/TGxGPP6wbpIu93PzMkB44vx/1ohfuNIeWNSbToPOnSeoq+1DJaJFpKUr3r++OtWBzLh7FJPULCVLxRpFo/Of6dH9JCcZZnXrOteIv/yDjCRF5Me19AF0JoJwhsB85t2SYyxDaYQl50munidyAlYSt6kxuj7NqZbltMzZWJHNm7E3SwVI+eP9Iyn9xWoUmR/Syra4ZQw+fG8ucHT3f8qyUmzy2rEH1yrD/bnZZyc3WaIVfmuudk1SSamjTkf0v8JQYrBWjVyXjJgrUhMlJvwx6CEwLU7Bm/dPXhOFql7iB0lkXYSNxqOUclhI7WaEUrtfBUGdXoejq6eQ1A== 修改于 2025-06-03 05:38:52