本文代码参照柳峰的代码。十分感谢。

开始在做微信集成的时候,是采用微信+阿里云服务器+SFDC这种模式进行的。在阿里云上部署java程序实现和微信服务器的沟通,在通过SFDC的对外API实现和java程序的沟通。这种方式使项目成本提升,并且大多数客户难以接受。

后来在论坛和qq群里,看大家的讨论,发现可以采用REST API来实现。在我的传统观念里REST API需要使用SeessionID和token的。使用site功能,就相当于把借口直接暴露出来,省去了Oath认证的步骤,一般在做接口测试的时候会这么做。(Site这个功能,在有的org里没有,需要申请,这部分内容我不打了解。不过我申请的免费开发org里有这个功能)

闲言不多说。

1、在SFDC上创建Site,设置如图。

2、点击保存按钮进入到如图的页面(下次进来的时候,要先edit,然后保存,才能再次来到这个页面)

在标示为1的地方设计Site访问的class,和profile的设置方法类似。标记为2的地方不可以添加任何的页面,否则程序出现问题。

3、新建一个类代码如下

@RestResource(urlMapping='/CoreService/*')
global with sharing class ApexRESTCycleExample {@HttpGetglobal static void doGet(){// 微信加密签名  String signature=RestContext.request.params.get('signature');        // 时间戳  String timestamp=RestContext.request.params.get('timestamp');    // 随机数  String nonce=RestContext.request.params.get('nonce');       // 随机字符串  String echostr=RestContext.request.params.get('echostr'); system.debug(signature+'====='+timestamp+'====='+nonce+'====');String endstr= '';if(checkSignature(signature,timestamp,nonce)){RestContext.response.addHeader('Content-Type', 'text/plain');RestContext.response.responseBody = Blob.valueOf(echostr);}} public static boolean checkSignature(String signature, String timestamp, String nonce) {  String[] arr = new String[] { 'weixin', timestamp, nonce };  // 将token、timestamp、nonce三个参数进行字典序排序  // Arrays.sort(arr);  arr.sort();String content = '';  for (Integer i = 0; i < arr.size(); i++) {  content += arr[i];  }Blob hash = Crypto.generateDigest('SHA1',Blob.valueOf(content));String hexDigest = EncodingUtil.convertToHex(hash);String singUpperCase = hexDigest.toUpperCase();System.debug(singUpperCase +'===============');   // 将sha1加密后的字符串可与signature对比,标识该请求来源于微信  Boolean flag = singUpperCase != null ? singUpperCase .equals(signature.toUpperCase()) : false;system.debug(flag + '==============');return flag;  }  }

该段代码参考 柳峰的博客编写。

4、测试程序如图。注意:必须以https的形式访问,否则失败

5、设置微信中的接口

复制上面的link到微信里,就可以成功打开了。

问题总结:1、我在写的时候,由于不知道可以直接调用API返回数据,绕了很多的弯路。

2、要以https的方式请求。

salesforce 和微信的集成(一)通过SFDC Site打开微信开发接口相关推荐

  1. H5静态页面跳转微信小程序;从外部浏览器,点击H5链接跳转打开微信小程序;以及在微信内直接点击H5链接打开微信小程序;

    参考链接 需求:从外部浏览器,点击H5链接跳转打开微信小程序:以及在微信内直接点击H5链接打开微信小程序: 步骤1: 小程序开发需要使用云开发创建项目,使用云开发生成的项目会自带云函数文件夹: 步骤2 ...

  2. 如何在微信复制链接直接可以用浏览器打开 微信调用手机浏览器打开指定链接

    由于微信的限制,应用文件在内置浏览器中下载全部被屏蔽掉,造成很多人用微信扫描二维码下载时,界面显示一片空白,容易误导以为在下载呢 <!DOCTYPE html> <html> ...

  3. 打开微信显示wifi连接到服务器地址,打开微信就能连接附近wifi,可惜大家都不知道,赶紧告诉家人...

    大家好,谢谢观看本期生活小妙招,我是生活当当家,一切妙招都来于生活. Wi-Fi是一种可以将个人电脑.手持设备(如PDA.手机)等终端以无线方式互相连接的技术. 就是可以通过wifi功能(wlan)使 ...

  4. 微信小程序的一些基本知识,微信小程序开发

    什么是**微信小程序** 微信小程序是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的梦想,用户扫一扫或者搜一下即可打开应用.也体现了"用完即走"的 ...

  5. android 微信 备份通讯录,微信备份手机通讯录在哪?怎么用微信备份手机通讯录?...

    微信5.2升级后,微信界面有了很大的变化,对于有些功能设置你可能一时半会找不到在哪里,像微信通讯录备份很多人都找不到,下面说说微信备份手机通讯录在哪?怎么用微信备份手机通讯录?不明白的朋友可以参考本文 ...

  6. iOS微信支付集成 SDK1 7 5

    最近做了一个新项目,涉及到支付宝和微信支付,支付宝和微信都是业界的老大哥,相信大家都有所觉得文档.SDK都是各种坑吧(纯粹吐槽而已),这是继上篇支付宝支付集成后接着的微信支付集成. 1.微信商户申请步 ...

  7. H5与企业微信jssdk集成

    H5与企业微信jssdk集成 一.公众号设置 注册企业微信,在应用与小程序栏目中,设置可信域名,配置公众号菜单.可信域名不得不说下,在最初开发时,认为设置并验证后,微信认证接口会实现跨域请求,其实并没 ...

  8. SAP系统和微信集成的系列教程之三:微信用户关注公众号之后,自动在SAP C4C系统创建客户主数据

    这是Jerry 2020年的第84篇文章,也是汪子熙公众号总共第266篇原创文章. 本系列的英文版Jerry写作于2017年,这个教程总共包含十篇文章,发表在SAP社区上. 系列目录 (1) 微信开发 ...

  9. SAP系统和微信集成的系列教程之一:微信开发环境的搭建

    系列目录 (1) 微信开发环境的搭建 ( 本文 ) (2) 如何通过微信公众号消费API (3) 微信用户关注公众号之后,自动在SAP C4C系统创建客户主数据 (4) 如何将SAP C4C主数据变化 ...

最新文章

  1. 基于K-gram的winnowing特征提取剽窃查重检测技术(概念篇)
  2. 最落寞的C9高校:从未没落
  3. 全能系统监控工具dstat
  4. ZooKeeper 3.4.5 分布式环境搭建详解
  5. 剑指 Offer 28. 对称的二叉树【无取巧,易于理解!】
  6. vs2012编译boost_1_54_0
  7. 模拟退火算法解决np_P和NP问题与解决方案| 演算法
  8. Magento重建所有索引方法
  9. dj鲜生-31-用户中心-功能需求分析
  10. weblogic 12 开启debug端口配置
  11. 获取程序下基目录下的文件的
  12. jdbc执行多条sql_JDBC相关知识总结
  13. 算法:泽勒的一致性 给定一个日期,输出这个日期是该年一周中的星期几 【c++ java python版本】
  14. 自动化运维脚本模块-stmplib,emai模块
  15. Ubuntu使用cmake出现Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
  16. 6. Lots of Parabolas
  17. linux下scala脚本运行报错error: expected class or object definition 解决方案
  18. 2020-09-15,小米笔试,java
  19. GPIO的配置及使用(MC9S08AW60)
  20. ElasticSearch:部署ElasticSearch Kibana

热门文章

  1. c++读取8位和24位BMP位图数据 俺的作业
  2. 自动化编辑器零代码手机RPA脚本开发系列教程四
  3. 收集一些有质感、有内涵的网站 (转载)
  4. Ubuntu下更新软件 updata,upgrade
  5. 监控swagger 接口变动
  6. C++文本文件,二进制文件,write(),read(),map容器,seekg(),seekp(),tellg(),tellp()函数
  7. 内存分配---FF、BF、WF三种算法
  8. Html5的Canva绘制动态时钟显示当前时间!!!(附源码)
  9. 有时候Mac下删除文件磁盘空间无法释放
  10. K-meas聚类算法