微信小程序开发-微信支付免密支付(自动扣款)-小程序+java界面

微信小程序开发

小程序开发


浏览:1069 次

微信小程序开发-微信免密支付

很多时候我们需要使用非保密支付,这通常被称为自动扣款。不过,如何自动扣费,在这个微信API中并没有详细解释。官方微信支付官方说得很清楚,但非保密支付较少……有很多东西需要支付,比如滴滴打车、App Store微信支付、二维码乘车等。

下面是我做的一个项目:小程序、后台界面和数据库构建。用二维码乘车。微信小程序生成二维码。公交车机器配备有刷卡机,用于扫描代码并扣除费用。上线四个月后,我们有数十万用户,每天扫描20000多个订单,金额超过10万。

图像.png

图像.png

图像.png

图像.png

图像.png

从简报app发送的图片

准备事项:

1.微信app序列号。

2、申请一个微商账号(商家开通了委托代扣,似乎需要用微信私下办理,我使用的账号是甲方提供的)。

3.下载微信开发者工具。

根据下面的图片进入开发者工具,创建您的项目,工具将自动返回给您,根据图片创建项目目录,这将不再详细描述。

我不会详细说明发送的一些参数和结果。有关详细信息,请参阅以下链接。这是微信工作人员与微信合作提供的内部API文档,以及非秘密支付(自动扣除)API文档的地址:

事实上,有了这个链接,我几乎明白了!。。。。。

然后往下看。

对于免密支付,您必须首先与用户签署免密支付协议。如何签名?

首先,您需要使用代码查询用户的openid。

如何获取代码?

1.小程序用户可以登录。

//登录

wx.登录({

成功:函数(res){

//资源。密码

然后让你的后台界面来获取它。

},

失败:函数(){

}

})

2.用户登录获取代码,并请求微信界面获取openid。注:一个代码只能使用一次。

我无法使用Java获取用户的openid小程序,因为小程序请求必须填写安全url域名,而微信域名无法填写。放弃使用小程序获取所有信息

private Map<String,Object>_ getOpenId(字符串代码){

映射ret=new HashMap<>;();

Map<String,String>urlData=new HashMap<字符串,字符串>();

urlData。put(“appid”,appid);//小程序id

urlData。put(“secret”,appKey);//小程序密钥

urlData。put(“grant_type”,“authorization_code”);//固定值可以这样写

urlData。put(“js_code”,代码);//小程序中的代码

HttpsClientUtil HttpsClientUtil=新的Https客户端Util();

对象data_反序列化=空;

尝试{

//代码2打开URL“https://api.weixin.qq.com/sns/jscode2session ";

字符串dataStr=httpsClientUtil。doGet(代码2OpenUrl,urlData);

data_反序列化=JSONUtil.反序列化(dataStr);

}catch(异常ex){

ret.put(“成功”,false);

Ret.put(“消息”,“_getOpenId_Unknown异常”);

ret.put(“消息”,例如);

返回ret;

}

Map<String,String>data=(Map<String,String>)data_反序列化;

if(data.containsKey(“错误代码”)){

ret.put(“成功”,false);

ret.put(“消息”,data.containsKey(“错误代码”));

ret.put(“消息”,data.containsKey(“错误消息”));

}其他{

ret.put(“成功”,true);

ret.put(“结果”,数据);

}

返回ret;

}

好的,让我们开始签名。您只需要一个小程序就可以签署合同。你不需要在后台做任何事情。

首先,app需要发起签名请求。这是签名方法,

但首先,将签名小程序放在app上这是json中微信的新规则

“navigateToMiniProgramAppIdList”:[

“Wxbd687630cd02ce1d”,签名小程序

“Wx5e73c65404ee268”微信支付用户还款小程序

]

wxml语言

//BindGetUserInfo是我的逻辑函数,我不需要查看它,