个人微信号二次开发API调用、微信API接口

微信API接口、微信二次开发API调用
微信协议接口调用-加微信好友及通过好友请求

 

搜索

小提示:
  • 添加联系人必要接口
  • 搜索返回的V3 V4用于添加联系人
请求URL:
  • http://域名地址/api/contacts/search
请求方式:
  • POST
请求头:
  • Content-Type:application/json

  • X-GEWE-TOKEN: 后台获取

参数:
参数名必填数据类型说明
appidstring设备id
user_namestring搜索的手机号/微信号

返回数据:
参数名数据类型说明
retnumber0:成功
msgstring反馈信息
dataobject
data.UserNameobject用户名 添加好友凭证1
(如果是好友返回id 非好友是凭证)
data.NickNameobject用户昵称
data.Provincestring省份
data.Citystring市区
data.Countrystring国家
data.Signaturestring个性签名
data.Sexstring性别 1、男 2、女
data.BigHeadImgUrlstring大头像
data.SmallHeadImgUrlstring小头像
data.AntispamTicketstring添加好友凭证2

请求参数示例:
   {
       "appid": "wx_nScLwnZhfNmlQlL0npc71",
       "user_name": "18761670817",
   }

成功返回示例:
{
    "ret": 0,
    "msg": "success",
    "data": {
        "BaseResponse": {
            "ret": 0,
            "errMsg": {
                "string": "Everything is OK"
            }
        },
        "UserName": {
            "string": "v3_020b3826f。。。。。。"
        },
        "NickName": {
            "string": "张三"
        },
        "Pyinitial": {
            "string": "wxid_bo6akbwms8rv12"
        },
        "QuanPin": {
            "string": "wxid_bo6akbwms8rv12"
        },
        "Sex": 2,
        "ImgBuf": {
            "iLen": 0
        },
        "Province": "Anhui",
        "City": "MOS",
        "Signature": "默默无闻。。",
        "PersonalCard": 1,
        "VerifyFlag": 0,
        "WeiboFlag": 0,
        "AlbumStyle": 0,
        "AlbumFlag": 3,
        "SnsUserInfo": {
            "SnsFlag": 0,
            "SnsBgobjectId": 0,
            "SnsFlagEx": 0
        },
        "Country": "CN",
        "MyBrandList": "<brandlist count=\"0\" ver=\"841173559\"></brandlist>",
        "CustomizedInfo": {
            "BrandFlag": 0
        },
        "ContactCount": 0,
        "BigHeadImgUrl": "http://123456",
        "SmallHeadImgUrl": "http://456789",
        "ResBuf": {
            "iLen": 0
        },
        "AntispamTicket": "v4_000b708f0b040。。。。。。。。",
        "MatchType": 2
    }
}

  • 如果是好友 UserName字段显示的是id AntispamTicket为空
    非好友的情况 可以根据 UserName以及 AntispamTicket 作为添加好友的凭证
错误返回示例:
    {
        "ret": -1,
        "msg_err": "[wx_bpPSNW0kK0xYSM6ldubd]设备不存在或已离线"
    }

好友请求验证

小提示:
  • v_3   v_4 可以参考 搜索接口
请求URL:
  • http://域名地址/api/contacts/verifyuser
请求方式:
  • POST
请求头:
  • Content-Type:application/json

  • X-GEWE-TOKEN: 后台获取

    参数:
参数名必填数据类型说明
appidstring设备id
configobject其他配置
config.card_nicknamestring昵称
config.card_usernamestring用户id
config.group_idstring群id 如果是群加好友 必填
contentstring申请语
opcodenumber2添加好友 3同意好友 4拒绝好友
scenenumber添加方式 3 :微信号搜索 4 :QQ好友 8 :来自群聊 15:手机号
v_3string添加好友凭证1
v_4string添加好友凭证2
返回数据:
参数名数据类型说明
retnumber0:成功
msgstring反馈信息

请求参数示例:
  {
      "appid": "wx_nScLwnZhfNmlQlL0npc71",
      "config": {
          "card_nickname": "",
          "card_username": "",
          "group_id": ""
      },
      "content": "",
      "opcode": 0,
      "scene": 3,
      "v_3": "v3_0000000sdasda.......",
      "v_4": "v4_13910381083........"
  }
成功返回示例:
  {
      "ret": 0,
      "msg": "success",
      "data": {
          "BaseResponse": {
              "ret": 0,
              "errMsg": {}
          }
      }
  }
错误返回示例:
{
    "ret": 0,
    "msg": "success",
    "data": {
        "BaseResponse": {
            "ret": -2,
            "errMsg": {
                "string": "Invalid argument"
            }
        }
    }
}

调用微信支付API生成微信支付URL,需要先进行以下步骤: 1. 获取微信支付的统一下单接口,该接口用于生成预支付订单并返回支付URL; 2. 将生成的预支付订单信息发送给微信支付平台,获得预支付订单; 3. 通过预支付订单生成微信支付URL。 下面是一个简单的Java代码示例,用于生成微信支付URL: ```java import java.util.SortedMap; import java.util.TreeMap; import java.util.UUID; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class WechatPay { // 微信支付统一下单接口 private static final String UNIFIED_ORDER_URL = "https://api.mch.weixin.qq.com/pay/unifiedorder"; // 微信支付商户 private static final String MCH_ID = "your_mch_id"; // 微信支付API密钥 private static final String API_KEY = "your_api_key"; // 微信支付回调URL private static final String NOTIFY_URL = "https://example.com/notify"; /** * 生成微信支付URL * @param body 商品描述 * @param outTradeNo 商户订单 * @param totalFee 订单总金额,单位为分 * @param spbillCreateIp 终端IP * @return 微信支付URL */ public static String generatePayUrl(String body, String outTradeNo, int totalFee, String spbillCreateIp) throws Exception { SortedMap<String, String> params = new TreeMap<String, String>(); params.put("appid", "your_appid"); params.put("mch_id", MCH_ID); params.put("nonce_str", UUID.randomUUID().toString().replace("-", "")); params.put("body", body); params.put("out_trade_no", outTradeNo); params.put("total_fee", String.valueOf(totalFee)); params.put("spbill_create_ip", spbillCreateIp); params.put("notify_url", NOTIFY_URL); params.put("trade_type", "NATIVE"); // 生成签名 String sign = generateSign(params); params.put("sign", sign); // 发送请求 String xml = HttpUtils.post(UNIFIED_ORDER_URL, XmlUtils.toXml(params)); // 解析响应 SortedMap<String, String> result = XmlUtils.toMap(xml); if (result.get("return_code").equals("SUCCESS")) { String prepayId = result.get("prepay_id"); return generatePayUrl(prepayId); } else { throw new Exception(result.get("return_msg")); } } /** * 生成签名 * @param params 参数列表 * @return 签名 */ private static String generateSign(SortedMap<String, String> params) throws NoSuchAlgorithmException { StringBuilder sb = new StringBuilder(); for (String key : params.keySet()) { String value = params.get(key); if (value != null && !value.isEmpty() && !key.equals("sign")) { sb.append(key).append("=").append(value).append("&"); } } sb.append("key=").append(API_KEY); String str = sb.toString(); MessageDigest md = MessageDigest.getInstance("MD5"); byte[] bytes = md.digest(str.getBytes()); StringBuilder result = new StringBuilder(); for (byte b : bytes) { String hex = Integer.toHexString(0xff & b); if (hex.length() == 1) { result.append('0'); } result.append(hex); } return result.toString().toUpperCase(); } /** * 生成微信支付URL * @param prepayId 预支付订单 * @return 微信支付URL */ private static String generatePayUrl(String prepayId) { SortedMap<String, String> params = new TreeMap<String, String>(); params.put("appid", "your_appid"); params.put("mch_id", MCH_ID); params.put("time_stamp", String.valueOf(System.currentTimeMillis() / 1000)); params.put("nonce_str", UUID.randomUUID().toString().replace("-", "")); params.put("prepay_id", prepayId); params.put("sign_type", "MD5"); // 生成签名 String sign = generateSign(params); params.put("sign", sign); // 生成支付URL StringBuilder sb = new StringBuilder(); sb.append("weixin://wxpay/bizpayurl?"); for (String key : params.keySet()) { String value = params.get(key); if (value != null && !value.isEmpty()) { sb.append(key).append("=").append(value).append("&"); } } sb.setLength(sb.length() - 1); return sb.toString(); } } ``` 在上述代码中,我们使用了HttpUtils和XmlUtils两个工具类。HttpUtils用于发送HTTP请求,XmlUtils用于将XML格式的字符串转换为SortedMap。你需要根据自己的实际情况实现这两个工具类。 使用该代码,你可以像下面这样生成微信支付URL: ```java String payUrl = WechatPay.generatePayUrl("商品描述", "商户订单", 100, "终端IP"); System.out.println(payUrl); ``` 其中,参数分别为商品描述、商户订单、订单总金额(单位为分)和终端IP。执行完上述代码后,你将获得一个微信支付URL,该URL可以用于在微信客户端中打开支付页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值