0%
简介
- 环境
- macOS端:Theos、Xcode11.3、macOS10.14.6
- 客户端:iPhone6、iOS11、unc0ver越狱
- 服务端:Centos8、Python3.8
- iOS正向开发中集成支付宝可以参照官方文档
- iOS逆向开发参照此文
Theos集成
- 下载iOS_SDK,解压后把
AlipaySDK.framework
和AlipaySDK.bundle
放入Tweak根目录
- 在Makefile中添加支付宝依赖和framework
1 2
| TweakName_FRAMEWORKS += WebKit SystemConfiguration CoreTelephony QuartzCore CoreText CoreGraphics CoreMotion CFNetwork TweakName_LDFLAGS += -lz -lc++ AlipaySDK.framework/AlipaySDK
|
- 使用支付宝功能
1 2 3 4 5
| #import "AlipaySDK.framework/Headers/AlipaySDK.h"
[[%c(AlipaySDK) defaultService] payOrder:orderString fromScheme:@"app://" callback:^(NSDictionary *resultDic) {
}];
|
Python集成
macOS端
- macOS下载支付宝开放平台开发助手,进行安装,安装完成,打开软件设置如下
- 密钥长度:RSA2
- 密钥格式:PKCS1(非JAVA适用)
- 选择后,点击生成密钥,就会生成
应用私钥
和应用公钥
.
支付宝开发者网站
- 添加APP支付能力
- 点击进入开发者网站,找到
我的应用
->网页和移动应用
,找到你新建的应用。
- 点击应用->概览->能力列表->添加能力->
APP支付
,审核通过后就可以使用APP支付功能了,
- 点击应用信息,找到接口加密方式,点击
设置/查看
,把macOS上生成的应用公钥
粘贴到这里后就会生成支付宝公钥
Python项目中
- 使用
pip3 install alipay-sdk-python
安装支付宝服务端
- Python项目中新建
alipay_public_key.txt
放入支付宝公钥
,新建app_private_key.txt
放入应用私钥
。
- 返回订单字符串代码为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| import os from alipay.aop.api.AlipayClientConfig import AlipayClientConfig from alipay.aop.api.DefaultAlipayClient import DefaultAlipayClient from alipay.aop.api.domain.AlipayTradeAppPayModel import AlipayTradeAppPayModel from alipay.aop.api.request.AlipayTradeAppPayRequest import AlipayTradeAppPayRequest
abspath = os.path.abspath(os.path.join(os.getcwd(), "order")) private_path = os.path.join(abspath, 'app_private_key.txt') public_path = os.path.join(abspath, 'alipay_public_key.txt') app_private_key = open(private_path).read() alipay_public_key = open(public_path).read()
alipay_client_config = AlipayClientConfig() alipay_client_config.app_id = 'Your AppId' alipay_client_config.app_private_key = app_private_key alipay_client_config.alipay_public_key = alipay_public_key
model = AlipayTradeAppPayModel() model.timeout_express = "90m" model.total_amount = "9.9" model.subject = "商品购买" model.out_trade_no = time.strftime('%Y%m%d%H%M%S') + '_' + udid request = AlipayTradeAppPayRequest(biz_model=model) request.notify_url = "http://xxx.com/api/order"
client = DefaultAlipayClient(alipay_client_config=alipay_client_config, logger=logger) orderSting = client.sdk_execute(request)
|