java 单机接口限流处理方案
556
2022-11-06
本文目录一览:
PHP做银联支付接口调用问题
//在工商支付接口之前要找到工行提供的接口文件级dll文件
//将订单签名数据公钥加密提供给工行指定页面
//组织要签名的数据串
$src="ICBC_PERBANK_B2C1.0.0.0".$infomer["merid"].$infomer["meracct"].$returnaddress."HS".$ddnumber.$amount."0010".$nowtime."0";
$com=new com('ICBCEBANKUTIL.B2CUtil');
$rc=$com-init("c:\WINDOWS\user.crt","c:\WINDOWS\user.crt","c:\WINDOWS\user.key","11111111");
$ssrc=$com-signC($src, strlen($src)); //订单签名数据
$rc=$com-verifySignC($src,strlen($src), $ssrc, strlen($ssrc));
$cert=$com-getCert(1); //商城证书公钥
//将商户证书存储到c:\WINDOWS目录下,然后创建form表单,将指定的数据提交到工行指定的网页中
!--支付宝支付的接口操作,提交的数据--
td width="100"a href="{$link}"img src="images/sy_19.gif" width="90" height="25" border="0"/a/td
!--——————————————————--
!--工行支付的接口操作,提交的数据--
form action="" method="post" name="form_bank"
input name="interfaceName" type="hidden" value="ICBC_PERBANK_B2C"/
input name="interfaceVersion" type="hidden" value="1.0.0.0"/
input name="orderid" type="hidden" value="{$ddnumber}"/
input name="amount" type="hidden" value="{$amount}"/
input name="curType" type="hidden" value="001"/
input name="merID" type="hidden" value="{$merid}"/
input name="merAcct" type="hidden" value="{$meracct}"/
input name="verifyJoinFlag" type="hidden" value="0"/
input name="notifyType" type="hidden" value="HS"/
input name="merURL" type="hidden" value="{$returnaddress}"/
input name="resultType" type="hidden" value="0"/
input name="orderDate" type="hidden" value="{$nowtime}"/
input name="merSignMsg" type="hidden" value="{$ssrc}" /
input name="merCert" type="hidden" value="{$cert}" /
/form
微信小程序是可以接入微信支付的接口的,比如目前还信用卡的小程序就可以通过微信支付来完成信用卡的还款;要使用此功能,用户只需在微信中关联一张银行卡,并完成身份认证,即可将装有app的智能手机变成一个全能钱包,之后即可购买合作商户的商品及服务,在付费时只需在自己的智能手机上输入密码,无需任何刷卡步骤即可完成整个过程且简便流畅
你好,单独的软件是不可以调用的,亲
支付宝是基于网站的支付方式,所以你必须要建设一个网站,然后接入支付宝支付接口。然后再开发一个软件配合网站,就可以实现软件调用支付接口,看似是软件调用接口,但实际上是网站在起作用。
满意请采纳!谢谢
1.调用微信接口授权
授权这里有两种方式,一种是snsapi_bases,另一种是snsapi_userinfo,这里官方文档介绍的比较清楚,可以参考官网
;t=resource/res_listverify=1id=open1419316505token=lang=zh_CN
appid 登录微信公众号-基本配置-开发者ID-APPID
redirect_uri 就是一个回调地址,当你调用完微信的这个链接后,他会自动调用你定义的这个地址,返回code参数
注意,redirect_uri 也需要在公众号里面配置,在接口权限-网页帐号里修改。
2.可以在页面中写一个调用授权的页面
%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%
html
head
title用户管理/title
script type="text/javascript" src="js/jquery/jquery-1.11.1.min.js"/script
script type="text/javascript"
function oauth() {
var url = "%=basePath%getOauth2Url";
$.ajax({
url: url,
success : function(result){
//var result = eval('('+result+')');
if (result.success){
location.href = result.obj; //
} else {
}
}
});
}
/script
/head
body
p onclick="oauth()"非用户认证鉴权/p
/body
/html
/prepre class="html" name="code" snippet_file_name="blog_20160608_3_8825275" code_snippet_id="1711669"java中的方法
pre class="html" name="code" /**
* 获取授权地址
* @return
*/
@RequestMapping(value = "/getOauth2Url",method = RequestMethod.GET)
public void getOauth2Url(Model model, HttpServletResponse response) {
Json j = new Json();
try {
String authorize_url = PayConfig.AUTHORIZE_URL;
String appId = PayConfig.APPID;
String redirect_uri = PayConfig.REDIRECT_URI;
String url = authorize_url + "?appid=" + appId + "redirect_uri=" + urlEncodeUTF8(redirect_uri) + "response_type=codescope=snsapi_basestate=STATE#wechat_redirect";
System.out.println(url);
j.setSuccess(true);
j.setMsg("保存成功!");
j.setObj(url);
write(response, JSON.toJSONString(j));
} catch (Exception e) {
j.setMsg(e.getMessage());
}
}
/**
* 对回调地址进行encode
* @param source
* @return
*/
public static String urlEncodeUTF8(String source){
String result = source;
try {
result = java.net.URLEncoder.encode(source,"utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return result;
}
pre class="html" name="code" /**
* 获取授权地址
* @return
*/
@RequestMapping(value = "/getOauth2Url",method = RequestMethod.GET)
public void getOauth2Url(Model model, HttpServletResponse response) {
Json j = new Json();
try {
String authorize_url = PayConfig.AUTHORIZE_URL;
String appId = PayConfig.APPID;
String redirect_uri = PayConfig.REDIRECT_URI;
String url = authorize_url + "?appid=" + appId + "redirect_uri=" + urlEncodeUTF8(redirect_uri) + "response_type=codescope=snsapi_basestate=STATE#wechat_redirect";
System.out.println(url);
j.setSuccess(true);
j.setMsg("保存成功!");
j.setObj(url);
write(response, JSON.toJSONString(j));
} catch (Exception e) {
j.setMsg(e.getMessage());
}
}
/**
* 对回调地址进行encode
* @param source
* @return
*/
public static String urlEncodeUTF8(String source){
String result = source;
try {
result = java.net.URLEncoder.encode(source,"utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return result;
}
package com.crm.common;
public class PayConfig {
public static String APPID = "wx91af774aae000dcb"; //APPID
public static String MCHID = "1347742701"; //商户编号
public static String PAYKEY = "kong6a9829e4b49a0d2347b4162da6b7"; //支付密钥
public static String APPSECRET = "f8e1ff34070a94332b3b128232acb5abf "; //公众号-基本配置-APPSECRET密钥
public static String REDIRECT_URI = "
回调地址
public static String AUTHORIZE_URL = "
微信授权地址
public static String ACCESS_TOKEN_URI = "
public static String SCOPE = "snsapi_base"; //snsapi_base和snsapi_userinfo
public static String GRANT_TYPE = "grant_type"; //获取openid时用,不用改
}
3.成功后,回到你当时写的回调地址
pre class="html" name="code"/**
* 微信授权后的回调地址的方法
* @param code
* @param response
*/
@RequestMapping(value = "/authorize",method = RequestMethod.GET)
public void authorize(String code, HttpServletResponse response, String openid) {
code = "test";
String access_token_uri = PayConfig.ACCESS_TOKEN_URI;
String appid = PayConfig.APPID;
String secret = PayConfig.APPSECRET;
access_token_uri = access_token_uri.replace("APPID", appid).replace("SECRET", secret).replace("CODE", code);
System.out.println(access_token_uri);
if(openid != null){
UniteOrder order = getUniteOrder(openid);
String reqXML = PayImpl.generateXML(order, PayConfig.PAYKEY);
String respXML = PayImpl.requestWechat(ORDER_URL, reqXML);
System.out.println("respXML=" + respXML);
UniteOrderResult result = (UniteOrderResult) PayImpl.turnObject(UniteOrderResult.class, respXML);
getWechatPay(result);
}
}
1、申请微信支付。小程序认证以后,可以在小程序后台,微信支付菜单栏,申请微信支付。填写企业信息和对公账户,微信支付会打一笔随机金额到对公账户,输入金额完成验证后,在线签署迁移,即完成了微信支付的申请流程。
微信支付申请完,会发送微信支付商户号,商户平台用户名密码等信息到注册者邮箱。
2、配置小程序密钥。小程序后台设置页,点击生成,管理员验证二维码后,会随机生成AppSecret。请妥善保管好Appsecret,不要明文存储于服务器,AppSecret用于和微信服务器交互。比如获取用户的openid接口就需要用到.
3、设置密钥和下载证书
用申请微信支付获得的用户名和密码,登录商户平台(pay.weixin.qq.com),在账户中心,API安全中下载证书和设置密钥。
密钥是32位,设置以后需要妥善保管,因为无法查看密钥,所有微信支付相关的接口都会使用这个密钥加密。
4、配置HTTPS服务器 小程序的前端是使用微信提供的框架开发,但是后台依然是开发者自己的服务器。小程序发起的是HTTPS请求,意味着小程序开发者必须配置HTTPS服务器。配置HTTPS服务器之前,先要获取证书,证书可以向相关机构购买,腾讯云目前可以向用户提供免费的证书。
5、微信支付流程
微信支付有多种支付方式,包括刷卡支付,公众号支付,扫码支付,APP支付,所有微信支付的接口都可以到官方找到。小程序是在微信里调起支付的,其实是公众号支付,关于公众号支付的详细文档可以这里找到:。所有公众号支付相关的链接都可以在此链接找到,开发者首先需要大概了解这些接口。
6、小程序调起微信支付,用的是小程序微信支付接口wx.requestPayment,该接口的详细描述可以查看小程序的微信支付API。
这个接口中的package和timeStamp参数是从开发者的第三方服务器返回的,package是第三方服务器从统一下单接口回复中获得。
接口中其他的参数,appId,noceStr,signType以及paySign则由小程序这边存储或者计算而得。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~