DelphiTeacher

专注控件开发

Delphi调用微信SDK(微信支付)

2016/12/28 15:14 于 三方SDK

Demo下载地址:
https://pan.baidu.com/s/14i84u

微信开发平台官方地址:
Open.weixin.qq.com
先申请成为微信开放平台开发者(注:不是公众号平台),
再创建一个应用,

需要配置包名,Android平台下还需要配置应用签名,在下面会讲到:

然后获取移动支付的能力

提交所需要的资料,
移动支付申请成功后会收到一封邮件,
上面有微信商户平台的商户ID,以及登录账号,
用这个账号登陆商户平台:
Pay.weixin.qq.com

接下来在电脑上安装证书:


安装完之后在API安全那里设置商户密钥

IOS平台微信SDK的使用方法:

在SDKManager中给IOS SDK添加SystemConfiguration等Framework

微信SDK的静态链接库为libWeChatSDK.a

Delphi 10 Seattle 下,把OrangeUI_IOS9Fix.exe, IOSPlistConfig.txt这两个文件拷贝到工程目录下,
并且设置BuildEvents:
$(PROJECTDIR)\OrangeUI_IOS9Fix.exe "$(OUTPUTPATH).info.plist"

IOSPlistConfig.txt内容如下:

修改IOSPlistConfig.txt,将里面的APPID替换成自己的APPID
注意,上面红框中的替换成您开放平台中应用的APPID,
不然支付成功不能跳转回你的APP,

Delphi 10.1 Berlin下面,可以直接编辑源码目录下面的info.plist.TemplateiOS.xml,
在最后的之前,插入如上的xml片段,

编译器中加以下参数,不然会闪退:

-ObjC -all_load
32位64位都需要设置

<key>LSApplicationQueriesSchemes</key>
<array>
<string>mqqOpensdkSSoLogin</string>
<string>mqzone</string>
<string>sinaweibo</string>
<string>alipayauth</string>
<string>alipay</string>
<string>safepay</string>
<string>mqq</string>
<string>mqqapi</string>
<string>mqqopensdkapiV3</string>
<string>mqqopensdkapiV2</string>
<string>mqqapiwallet</string>
<string>mqqwpa</string>
<string>mqqbrowser</string>
<string>wtloginmqq2</string>
<string>weixin</string>
<string>wechat</string>
</array>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>weixin</string>
<key>CFBundleURLSchemes</key>
<array>
<string>wx7e4aed8e24992dfc</string>
</array>
</dict>
</array>

Android版微信接口使用方法:
先来介绍一下如何用Eclipse生成jar,
比如我们的包名是:com.embarcadero.FairySport
打开Eclipse->File->New->Android Project
输入ProjectName(工程名),ApplicationName(程序名),PackageName(包名),

接下来我们创建wxapi.jar所需要的包com.embarcadero.FairySport.wxapi
File->New->Package

再创建我们需要的类,File->New->Class:
分别是OnWeixinListener, WXEntryActivity, WXPayEntryActivity:


添加完之后并写上相应的代码,然后我们再导出jar:
选中我们的wxapi这个Package,右键,导出,选择Java结点下面的JAR file,

选择好jar生成的路径,

点击Finish,就会生成jar了,
最后,用JarOrClass2Pas工具生成wxapi.jar的Delphi接口文件

比如我的包名是com.ggggcexx.orangeui
那么需要用Eclipse创建一个wxapi.jar,包含com.ggggcexx.orangeui.wxapi.WXEntryActivity,
因为调用微信接口发完消息会向WXEntryActivity发送调用成功还是失败,
然后再配置AndroidManifest.template.xml,

也就是添加这么一段:
<activity
android:name=".wxapi.WXEntryActivity"
android:label="%activityLabel%"
android:exported="true">
再设置需要的权限

如果要使用支付的话,
wxapi.jar中还需要包含com.ggggcexx.orangeui.wxapi.WXPayEntryActivity,
因为调用微信支付接口支付之后会向WXPayEntryActivity发送调用成功还是失败,
还要加
<activity
android:name=".wxapi.WXPayEntryActivity"
android:label="%activityLabel%"
android:exported="true">

在工程的Libraries中添加libammsdk.jar, wxapi.jar

创建签名文件

把红框中的md5(去掉冒号)设置到微信平台中