PC端第三方支付接口

applica.yml文件配置微信、支付宝支付接口调用参数;

支付宝支付

第一步:生成订单,保存订单信息(除了支付状态、支付时间等状态)

orderService.save(order);

第二步:封装客户端请求

AlipayClient client=new DefaultAlipayClient(alipayProperties.getUrl(),alipayProperties.getAppid(),alipayProperties.getRsa_private_key(),alipayProperties.getFormat(),alipayProperties.getCharset(),alipayProperties.getAlipay_public_key(),alipayProperties.getSigntype());

第三步:

支付宝服务器异步通知:支付完成获取支付宝GET过来反馈信息

boolean signVerified = AlipaySignature.rsaCheckV1(params,alipayProperties.getAlipay_public_key(),alipayProperties.getCharset(),alipayProperties.getSigntype());//调用SDK验证签名

验证支付完成,更新订单表

order.setBuyTime(new Date());// 支付时间

order.setIsPay(1);// 支付支付状态 已经支付

orderService.save(order);

支付宝服务器同步通知:跳转支付成功页面

boolean signVerified = AlipaySignature.rsaCheckV1(params,alipayProperties.getAlipay_public_key(),alipayProperties.getCharset(),alipayProperties.getSigntype());//调用SDK验证签名


微信支付

第一步:微信支付需要传入参数到微信后台,跳转到支付页面

weixinpay.ftl页面,image标签调loadPayImage方法并将返回数据流生成支付二维码,扫码并支付

<image src="/weixinpay/loadPayImage?id=${order.id?c}"></image>

同时生成订单,保存订单信息(除了支付状态、支付时间等状态)

orderService.save(order);

第二步:支付完成,微信服务器异步通知notifyUrl调isTenpaySign方法验证支付结果

验证支付完成更新订单表

order.setBuyTime(new Date());// 支付时间

order.setIsPay(1);// 支付支付状态 已经支付

orderService.save(order);

第三步:weixinpay.ftl支付页面定时查询订单支付结果loadPayState

function orderStatus(){

$.post("/weixinpay/loadPayState",{

id:${order.id?c}},

function(data,status){

if(data==1){

location.href ="/weixinpay/returnUrl";

}});}

setInterval("orderStatus()",3000);

支付成功,跳转returnUrl页面

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 课程小结: 手机摄影构图四大经典法: 1.三分法(又叫井字构图、九宫格、黄金分割点) 2.透视法(立体空间近大远小...
    挺牛牛阅读 209评论 0 0
  • 日记本上的泪痕 褪色了的旧相片 风吹落的枯叶子 完场的演奏曲 干涸了墨水的钢笔 发黄的信纸上面 谁的字迹 记录了 ...
    冬眠子阅读 375评论 4 2
  • 《被讨厌的勇气》这本书,在书名震撼到我后,开篇继续洗刷我的三观。 首先,哲人就将阿德勒的“目的论”与著名的弗洛伊德...
    阿不快跑阅读 534评论 4 1
  • 我好累,我好怕这一切只是毫无意义的逞强。
    知言而语阅读 145评论 0 0