doumigu9594 2011-08-08 19:46
浏览 52
已采纳

如何使用PHP中的salesforce使用Namespace消耗Soap消息

I am new to salesforce. Proficient in php but I haven't done any xml parsing. I have this file which I can consume. It is created when a salesforce object changes:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body>
 <notifications xmlns="http://soap.sforce.com/2005/09/outbound">
  <OrganizationId>00D30000000opwSEAQ</OrganizationId>
  <ActionId>04k30000000L6QPAA0</ActionId>
  <SessionId xsi:nil="true"/>
  <EnterpriseUrl>https://na1-api.salesforce.com/services/Soap/c/22.0/00D30000000opwS</EnterpriseUrl>
  <PartnerUrl>https://na1-api.salesforce.com/services/Soap/u/22.0/00D30000000opwS</PartnerUrl>
  <Notification>
   <Id>04l3000000JbKClAAN</Id>
   <sObject xsi:type="sf:Account" xmlns:sf="urn:sobject.enterprise.soap.sforce.com">
    <sf:Id>0013000000ooziWAAQ</sf:Id>
    <sf:BillingCity>New York</sf:BillingCity>
    <sf:BillingCountry>US</sf:BillingCountry>
    <sf:BillingPostalCode>10000</sf:BillingPostalCode>
    <sf:BillingState>New York</sf:BillingState>
    <sf:BillingStreet>302 E xxx St Apt C</sf:BillingStreet>
    <sf:FN__Mapping_Status__c>Not Located Yet</sf:FN__Mapping_Status__c>
    <sf:IsDeleted>false</sf:IsDeleted>
    <sf:Member_Status__c>Active</sf:Member_Status__c>
    <sf:Name>Joel Test</sf:Name>
   </sObject>
  </Notification>
 </notifications>
 </soapenv:Body>
</soapenv:Envelope>

I need to parse it so that I can take the values in the sf namespace and update a database. I can use SimpleXML to read stuff no in namespace, but I haven't been able to read namespace values. Can someone point me to example code or tutorial on how to do this?

  • 写回答

3条回答 默认 最新

  • dousui6488 2011-08-20 05:29
    关注

    It looks like that is a SOAP message from the Outbound Messaging feature in Salesforce. Instead of treating it as just XML, try using the native PHP SoapServer with the WSDL provided in Salesforce, as it is designed to handle SOAP messages like this. You can get the WSDL at Setup | Create | Workflow & Approvals | Outbound Messages | | Endpoint WSDL. You might also want to look at the Salesforce PHP Client, which uses the corresponding PHP SoapClient and has a utility for handling the sf: namespace and converting to a SObject object. It shouldn't be too hard to rewire the toolkit to act as a server instead of a client so you can handle the Outbound Messages.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面