给出代码如下:
Type WAPPushPDUStruct
SMSCLen As String
SMSCType As String
SMSC As String
PROTOCOL As String
TPMRBase As String
RePhoneNumLen As String
RePhoneNumType As String
RePhoneNum As String
TPPID As String
TPDSC As String
TPVP As String
MSGLen As String
WAPPUSHHeadLen As String
WAPPUSHFlag As String
DATALen As String
WAPPUSHCOMBFlag As String
Total As String
MSGID As String
WapPushUDH As String
WapPushPUD As String
' WAPPUSHBegin As String
' WSP As String
' Flag As String
' DTDSIFlag As String
' UTF As String
' FlagBegin As String
' SIBegin As String
'
' IndicationBegin As String
'
' Action As String
' Href As String
' HrefBegin As String
WapPushIndicator As String
URL As String
' HrefEnd As String
' Split As String
' TitleBegin As String
WapPushDisplayTextHeader As String
title As String
' TitleEnd As String
' SIEnd As String
' IndicationEnd As String
EndOfWapPush As String
PDULen As Integer
PDU As String
End Type
Public Function genWapPushPdu(ByVal URL As String, ByVal title As String, ByVal SMSC As String, ByVal phoneNum As String) As WAPPushPDUStruct
Dim wapPush As WAPPushPDUStruct
With wapPush
' .SMSCLen
' .SMSCType
.SMSC = SMSC
.PROTOCOL = "51"
.TPMRBase = "00"
' .RePhoneNumLen
' .RePhoneNumType
.RePhoneNum = phoneNum
FormatPhoneNum .SMSC, .SMSCType
.SMSCLen = Int2HexStr(Len(.SMSC & .SMSCType) / 2) '短信息中心地址长度。(短信息中心号码类型 + 短信息中心号码长度 /2 的十六进制表示)
' msg.DestPhoneNumType 被叫号码类型。有+86时候为"91",否则为"81"
.RePhoneNumLen = Int2HexStr(FormatPhoneNum(.RePhoneNum, .RePhoneNumType)) ''被叫号码长度。被叫号码长度的十六进制表示。
.TPPID = "00"
' .TPDSC = "A6"
.TPDSC = "04" '用户信息编码方式 F5
.TPVP = "A7"
' .TPVP = "FF"
' .MSGLen
'
' Dim Push_head1, Push_head2 As String
'
' Push_head1 = "0B05040B8423F00003030101"
' Push_head2 = "29060603AE81EA8DCA" ' // 81EA8D98 02 06 6A 00 85 09 03
.WAPPUSHHeadLen = "0B"
'以下内容在UDH后面
.WAPPUSHFlag = "00"
.DATALen = "03"
.WAPPUSHCOMBFlag = "03"
.Total = "01"
.MSGID = "01"
'格式1
' .WapPushUDH = "0605040B8423F0"
' .WapPushPUD = "81060603AE81EA8D00" ' //最后一位为WBXML长度;
' .WapPushIndicator = "02056A0045C6080C03"
'格式2
'.WapPushUDH = "0605040B8423F0"
'.WapPushPUD = "010603AE8DC4"
'.WapPushIndicator = "02056A0045C6080C03"
'
'格式3
'
'.WapPushUDH = "0B05040B8423F00003030101"
'.WapPushPUD = "29060603AE81EA8DCA"
'.WapPushIndicator = "02056A0045C6080C03"
'
''格式4
''//比老赵帮本多了一个,在这里;//不成功;
'.WapPushUDH="0605040b8423f0"
'.WapPushPUD="250601ae"
'.WapPushIndicator="02056a0045C6080C03"
'
''格式5
'.WapPushUDH="0605040b8423f0"
'.WapPushPUD="250601ae"
'.WapPushIndicator="01056a0045C60C03"'//老赵版本;不成功
'
'格式6
.WapPushUDH = "0605040b8423f0"
.WapPushPUD = "250601ae"
.WapPushIndicator = "02056a0045C60C0"
'
''格式7
'.WapPushUDH="0605040B8423F0"
'.WapPushPUD="72060a03AE81EAaf828D"'//最后一位为WBXML长度;
'.WapPushIndicator="80b48402056A0045C60C03"
'.WapPushDisplayTextHeader="00080103"
'
''格式8
'.WapPushUDH="0B05040B8423F00003030101"
'.WapPushPUD="29060603AE81EA8DCA"'//最后一位为WBXML长度;
'.WapPushIndicator="02056A0045C60C03"
'.WapPushDisplayTextHeader="00080103"
'
''格式9
'.WapPushUDH="0605040b8423f0"
'.WapPushPUD="81060803ae81eab4848d"'//最后一位为WBXML长度;
'.WapPushIndicator="02056A0045C6080C03"
.WapPushDisplayTextHeader = "000103"
.EndOfWapPush = "000101"
' .URL = GB2Unicode(URL)
.URL = Str2HexStr(URL)
' .title = GB2Unicode(title)
.title = Str_UTF_8(title, "HEX")
Dim str1, str2 As String
'=======================================================================================================================================
str1 = .SMSCLen & .SMSCType & .SMSC & .PROTOCOL & .TPMRBase & .RePhoneNumLen & .RePhoneNumType & .RePhoneNum & .TPPID & .TPDSC & .TPVP
' str1 = .SMSCLen & .SMSCType & .SMSC & "11" & .RePhoneNumLen & .RePhoneNumType & .RePhoneNum & .TPPID & .TPDSC & .TPVP '短信消息头,按照正常短信
'
str2 = .WapPushUDH & .WapPushPUD & .WapPushIndicator & .URL & .WapPushDisplayTextHeader & .title & .EndOfWapPush
.MSGLen = Int2HexStr(Len(str2) / 2)
' .MSGLen = Int2HexStr(Len(.URL) + Len(.title) + 1)
.PDU = str1 & .MSGLen & str2
' .PDULen = Len(.PDU) / 2
.PDULen = Len(.PDU) / 2 - 9
' .PDULen = Len(.PDU) / 2 - 1
End With
genWapPushPdu = wapPush
End Function
本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/cutemouse/archive/2006/12/26/1461858.aspx
本文介绍了一种WAP推送短信的实现方法,通过VB代码生成特定格式的短信PDU,用于向手机发送包含WAP链接的短信。文章详细展示了如何构造短信头部信息及用户数据区,包括设置短信息中心地址、被叫号码等参数。
8323

被折叠的 条评论
为什么被折叠?



