第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

微信支付和支付寶支付的三行代碼開(kāi)發(fā)教程(三)——支付的demo

標(biāo)簽:
Java WebApp

新版重构的SDK已经重构好,只剩下支付宝了,详情请看wiki

下载完源码mvn install之后,配置完成后可以开始开发了。DEMO是v1.1.X的

在你自己项目pom文件中加入

<dependency>
    <groupId>cn.zeemood</groupId>
    <artifactId>synergic-devloping</artifactId>
    <version>1.1.4</version>
</dependency>

注意:以下的XXXPayAssistant都可以用PayAssistant中找到对应的方法

v1.1.2已经完善了订单号生成器SnGenerator,建议调用两个参数的那个。详细使用说明看http://idcbgp.cn/article/23666

微信预支付(统一下单)
APP支付:

//创建微信预支付返回对象,主要是为了返回给APP时数据结构不变
WechatPreOrderInfo wechatPreOrderInfo = new WechatPreOrderInfo();
//创建预支付请求信息
WechatPayInfo payInfo = new WechatPayInfo("订单标题", "商户订单号", Integer.valueOf("订单价格乘100"), "配置文件中的回调地址后缀", WechatPayConst.TRADE_TYPE_APP, request.getRemoteAddr());
//向微信发起请求
wechatPreOrderInfo = WechatPayAssistant.preOrder(payInfo);

如果你的前端人员不想自己做二次加签,可以使用v1.1.4版本之后的工具包,调用下面这行代码

Map<String,Object> map = WechatPayAssistant.sign4App(wechatPreOrderInfo);

然后返回map就可以了。

微信扫二维码支付

//创建微信预支付返回对象,主要是为了返回给APP时数据结构不变
WechatPreOrderInfo wechatPreOrderInfo = new WechatPreOrderInfo();

//创建预支付请求信息
WechatPayInfo payInfo = new WechatPayInfo("订单标题", "商户订单号", Integer.valueOf("订单价格乘100"), "配置文件中的回调地址后缀", WechatPayConst.TRADE_TYPE_SWEEP_CODE, request.getRemoteAddr());

//向微信发起请求,此时返回的code_url不为空,把这个字段值生成二维码就可以了
wechatPreOrderInfo = WechatPayAssistant.preOrder(payInfo);

公众号支付:

//创建微信预支付返回对象,主要是为了返回给APP时数据结构不变
WechatPreOrderInfo wechatPreOrderInfo = new WechatPreOrderInfo();

//创建预支付请求信息
WechatPayInfo payInfo = new WechatPayInfo("订单标题", "商户订单号", Integer.valueOf("订单价格乘100"), "配置文件中的回调地址后缀", WechatPayConst.TRADE_TYPE_OFFICIAL_ACCOUNT, request.getRemoteAddr());

//向微信发起请求,此时返回的code_url不为空,把这个字段值生成二维码就可以了
wechatPreOrderInfo = WechatPayAssistant.preOrder(payInfo);

公众号的还没测试过,看了文档,跟扫二维码支付的差不多,应该没问题。流程是:

1.用户调用接口,生成商户的订单,并提交到微信端。注意,必须先获取到openid,公众号支付openid必填。

2.微信生成微信端的订单后,调用商户的接口,对返回参数进行二次加签,可以调用下面这行代码。

Map<String,Object> map = WechatPayAssistant.sign4WxH5(wechatPreOrderInfo);

将map返回给页面,使用JS API在微信内调起微信支付。
地址:使用JS API在微信内调起微信支付

微信支付异步回调:
回调都是一样的,主要说说怎么处理接收的信息。

public void callback(HttpServletRequest request,HttpServletResponse response) throws Exception{
    //解析数据
    WechatPayRet ret = WechatPayAssistant.parseRequest(request);

    /**
     * 自己的业务
     */

    //成功之后要应答,让微信别调了。但是还是会有重入的可能,所以必须做好数据锁
    WechatPayAssistant.echo(response);
}

退款的后面会说到……

支付宝支付
APP支付:

    String orderString = “支付宝APP支付需要返回给APP的字符串”; 
    //创建支付宝APP支付的数据模型 
    //注:此处用的支付宝官方的SDK,所以使用工具类填写必填参数 
    AlipayTradeAppPayModel model = AlipayModelUtils.getAppPayModel(BODY, SUBJECT, OUT_TRADE_NO , TIME_EXPRESS, TOTAL_ACCOUNT);
    //支付统一收单,我还是喜欢叫这个是预支付 
    //推荐使用支付宝支付助手里的preOrder4XXX方法,起码知道自己需要生成哪些预支付的实体类
    orderString = AlipayAssistant.preOrder(NOTIFY_URL,model);

网页支付

    String html = "需要返回给前端的html代码,接收后会跳转到支付宝的支付页面";
    //创建支付信息类 
    AlipayTradePagePayModel model = AlipayModelUtils.getPcPayModel(outTradeNo, totalAmount, subject, body, passbackParams);

    //预支付,将html返回给前端就可以了
    html = AlipayAssistant.preOrder(model,RETURN_URL,NOTIFY_URL);

手机网页支付也差不多,生成对应数据模型model就可以了

异步回调函数
(以SpringMVC为例)

@ResponseBody
public String callback(HttpServletRequest request,HttpServletResponse  response) throws Exception{
    //解析回调请求并验签
    AlipayAppPayRet ret = AlipayAssistant.parseRequest(request);
    /**
     * //网页支付的可以用更为通用的方法
     * Map<String,String> map = AlipayAssistant.getParamsMap(request.getParametersMap(),false);
     */
    /**
     * 自定义业务
     */

    //应答支付宝
    return AlipayAssistant.echo();
}

觉得好用别忘了给我的github点个小星星
图片描述

點(diǎn)擊查看更多內(nèi)容
8人點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
JAVA開(kāi)發(fā)工程師
手記
粉絲
105
獲贊與收藏
301

關(guān)注作者,訂閱最新文章

閱讀免費(fèi)教程

感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消