支付模块

支付宝支付:
首先做支付模块必须要先注册app_id,网关,公钥,私钥  
1.支付回调是为了把支付结果及时通知给商户/用户。因为有很多没有经验的持卡人在银行网银支付成功后,并没有按照页面提示跳转回商家网站,那么支付结果就不能及时反馈给商家,这时就需要通过回调接口,通过后台通知的方式把支付结果通知到商家。避免出现已经扣款成功,但是商家网站显示支付未成功的情况。 


2,一笔订单支付成功,会在第一时间通知,系统收到通知处理逻辑,必然返回1个SUCCESS,第三方接到SUCCESS就不再通知,否第三方支付平台会认为未收到通知,然后再过10s 20s 180s再 通知你。客户端会上传接收通知的接口,定时调用,客户端也要定时去查询,在错过第一次接收后,通知通知,异步通知,支付状态查询。


3,认证支付:用户在绑卡时,将卡信息提供给电商,这样在支持时,就无需再输入信息由电商在服务端保留的用户的账户信息比如身份证 手机号 卡号,仅对提供的密码和校验码即可完成支付。但会向电商暴露个人信息,如果被窃取或者手机丢失,就会危险。

快捷支付:在绑卡之后,有些银行会返回token,后续使用token作为支付凭证,无需提供卡号信息,电商则不需要本地保留卡号,银联有提供token接口。

网银支付:由银联/银行提供支付界面,用户需要输入卡号密码等方可支付,大部分银行还要求用户使用U盾等体验较差,手机端比较难看。

如购买了200元用户使用快捷支付支付,用户在交易界面上,提交订单到交易系统中,交易系统确认订单无误后,请求支付系统进行结算,用户被引导到收银台界面,让用户确认 交易金额选择支付方式,调用支付系统接口,支付系统接收支付请求,验证调用网关支付,支付网关请求支付方执行支付,支付网关接收的结果解析告知交易系统,可以利用URL/RPC调用实现,商城得知支付结果后准备出库。网银支付则会将用户引导到网银页面填写,后续步骤一样。

------------------------------------------------------------------------------------------------------------------------------ 
1.支付宝支付入口:一般有付款,交易查询,退款,退款查询,交易关闭。
2.支付时有商品订单号:订单名称,付款金额,商品描述:点击确认付款。
3.交易查询:商品订单号,支付宝交易号:点击交易查询可根据商品订单号与支付宝交易号二选一
4.退款:商品订单号,支付宝交易号,退款金额,退款金额,退款原因,退款请求号,商户订单号与支付宝交易号二选一,如果您点击“退款”按钮,即表示您同意该次的执行操作。
5.退款查询:商户订单号 ,支付宝交易号,退款请求号 :退 款 查 询,商户订单号与支付宝交易号二选一,如果您点击“退款查询”按钮,即表示您同意该次的执行操作。
6.交 易 关 闭:商户订单号,支付宝交易号:商户订单号与支付宝交易号二选一,如果您点击“交易关闭”按钮,即表示您同意该次的执行操作
1>付款
获得初始化的AlipayClient
设置请求参数
商户订单号,商户网站订单系统中唯一订单号,必填
付款金额,必填
订单名称,必填
商品描述,可空
2>交易查询
获得初始化的AlipayClient
设置请求参数
商户订单号,商户网站订单系统中唯一订单号
支付宝交易号
请二选一设置
请求
输出
3>退款
获得初始化的AlipayClient
设置请求参数
商户订单号,商户网站订单系统中唯一订单号
支付宝交易号
请二选一设置
需要退款的金额,该金额不能大于订单金额,必填
退款的原因说明
标识一次退款请求,同一笔交易多次退款需要保证唯一,如需部分退款,则此参数必传
请求
输出
4>退款查询
获得初始化的AlipayClient
设置请求参数
商户订单号,商户网站订单系统中唯一订单号
支付宝交易号
请二选一设置
请求:String result = alipayClient.execute(alipayRequest).getBody();
输出
5>交易关闭
获得初始化的AlipayClient
设置请求参数
商户订单号,商户网站订单系统中唯一订单号
支付宝交易号
请二选一设置
请求String result = alipayClient.execute(alipayRequest).getBody();
输出

二:相关调用微信支付的
        统一下单接口
    private static final String UNIFIEDORDER_URL = "https://api.mch.weixin.qq.com/pay/unifiedorder";
    // 订单查询
    private static final String ORDERQUERY_URL = "https://api.mch.weixin.qq.com/pay/orderquery";
    // 关闭订单
    private static final String CLOSEORDER_URL = "https://api.mch.weixin.qq.com/pay/closeorder";
    // 撤销订单
    private static final String REVERSE_URL = "https://api.mch.weixin.qq.com/secapi/pay/reverse";
    // 申请退款
    private static final String REFUND_URL = "https://api.mch.weixin.qq.com/secapi/pay/refund";
    // 查询退款
    private static final String REFUNDQUERY_URL = "https://api.mch.weixin.qq.com/pay/refundquery";
    // 下载对账单
    private static final String DOWNLOADBILLY_URL = "https://api.mch.weixin.qq.com/pay/downloadbill";
    // 交易保障
    private static final String REPORT_URL = "https://api.mch.weixin.qq.com/payitil/report";
    // 转换短链接
    private static final String SHORT_URL = "https://api.mch.weixin.qq.com/tools/shorturl";
    // 授权码查询openId接口
    private static final String AUTHCODETOOPENID_URL = "https://api.mch.weixin.qq.com/tools/authcodetoopenid";
    // 刷卡支付
    private static final String MICROPAY_URL = "https://api.mch.weixin.qq.com/pay/micropay";
    // 企业付款
    private static final String TRANSFERS_URL = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers";
    // 查询企业付款
    private static final String GETTRANSFERINFO_URL = "https://api.mch.weixin.qq.com/mmpaymkttransfers/gettransferinfo";
    // 企业付款到银行
    private static final String PAY_BANK_URL = "https://api.mch.weixin.qq.com/mmpaysptrans/pay_bank";
    // 查询企业付款
    private static final String QUERY_BANK_URL = "https://api.mch.weixin.qq.com/mmpaysptrans/query_bank";
    // 获取RSA加密公钥
    private static final String GETPUBLICKEY_URL = "https://fraud.mch.weixin.qq.com/risk/getpublickey";
    // 申请签约
    private static final String ENTRUSTWEB_URL = "https://api.mch.weixin.qq.com/papay/entrustweb";
    // 支付中签约接口
    private static final String CONTRACTORDER_URL = "https://api.mch.weixin.qq.com/pay/contractorder";
    // 查询签约关系
    private static final String QUERYCONTRACT_URL = "https://api.mch.weixin.qq.com/papay/querycontract";
    // 申请扣款
    private static final String PAPPAYAPPLY_URL = "https://api.mch.weixin.qq.com/pay/pappayapply";
    // 申请解约
    private static final String DELETECONTRACT_URL = "https://api.mch.weixin.qq.com/papay/deletecontract";
    // 查询签约关系对账单
    private static final String CONTRACTBILL_URL = "https://api.mch.weixin.qq.com/papay/contractbill";
    // 代扣查询订单
    private static final String PAPORDERQUERYL_URL = "https://api.mch.weixin.qq.com/pay/paporderquery";

    // 获取沙箱秘钥
    private static final String GETSINGKEY = "https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey";
    // 统一下单接口
    private static final String UNIFIEDORDER_SANDBOXNEW_URL = "https://api.mch.weixin.qq.com/sandboxnew/pay/unifiedorder";
    // 刷卡支付
    private static final String MICROPAY_SANDBOXNEW_RUL = "https://api.mch.weixin.qq.com/sandboxnew/pay/micropay";
    // 订单查询
    private static final String ORDERQUERY_SANDBOXNEW_URL = "https://api.mch.weixin.qq.com/sandboxnew/pay/orderquery";
    // 申请退款
    private static final String REFUND_SANDBOXNEW_URL = "https://api.mch.weixin.qq.com/sandboxnew/secapi/pay/refund";
    // 查询退款
    private static final String REFUNDQUERY_SANDBOXNEW_URL = "https://api.mch.weixin.qq.com/sandboxnew/pay/refundquery";
    // 下载对账单
    private static final String DOWNLOADBILLY_SANDBOXNEW_URL = "https://api.mch.weixin.qq.com/sandboxnew/pay/downloadbill";

 

posted @ 2022-08-11 18:51  码海兴辰  阅读(184)  评论(0编辑  收藏  举报