my.paysigncenter(object object)
支付宝客户端 10.0.18 或更高版本; 若版本较低,建议采取 兼容处理 。
小程序开发者工具: 不支持。
主体: 企业支付宝小程序
唤起周期扣款签约页面。
有关周期扣款的签约流程、使用场景、服务端请求参数等信息,请查阅 周期扣款产品说明。
效果示例
默认标题0
默认标题1
周期扣款签约流程
是否必须: 是。
使用 主账号 登录 ,选择当前开发的小程序,根据下面的说明进行相关开发配置:
-
接口加签方式:必填
-
应用网关:必填
-
支付宝网关:必填
-
接口内容加密方式:选填,建议配置
-
服务器ip白名单:选填,涉及到敏感操作时建议配置
具体可参考文档 开发设置。
是否必须: 是。
在支付宝开放平台创建的应用归属于对应的开放平台账号。如果要在应用中使用支付和资金等相关产品,需要将应用和支付宝商家平台账号绑定,应用才可调用需要商家开通的产品,具体步骤可查看 绑定应用。
是否必须: 是。
在 列表中搜索并为当前小程序开通 周期扣款 产品。
是否必须: 是。
集成并配置服务端 sdk,通过 sdk 调用服务端接口 支付宝个人协议页面签约接口(alipay.user.agreement.page.sign) 获取 signstr。
-
下载对应语言版本的最新版 服务端 sdk 并引入开发工程,用于后续的服务端接口调用。
-
在 sdk 调用具体的接口前需要进行 alipayclient 对象初始化。alipayclient 对象只需要初始化一次,后续调用不同的接口都可以使用同一个 alipayclient 对象。具体可参考文档 接口调用配置。
-
通过服务端调用 alipay.user.agreement.page.sign 获取 signstr,具体可参考文档 创建签约协议内容。
注意:
-
调用 alipay.user.agreement.page.sign 生成用于 my.paysigncenter 的 signstr 时,无需传入 return_url(传入也会被忽略);若开发者希望在签约成功后跳转到其他页面,请在 my.paysigncenter 的 success 回调中进行。
-
需要对 alipay.user.agreement.page.sign 接口返回的内容进行 url encode,才能得到适用于 my.paysigncenter 的 signstr。
是否必须: 是。
在小程序中调用 api,传入参数 signstr 唤起周期扣款签约页面。
是否必须: 是。
根据 my.paysigncenter 的 success 回调的结果进行进一步处理。回调参数结构可参考 success 参数,字段含义参考 success 回调函数说明。
object object
查看示例
属性 | 类型 | 默认值 | 必填 | 描述 |
---|---|---|---|---|
signstr | string | - | 是 | 签约字符串,可查看 周期扣款接入指南 来获取该字符串 |
success | function | - | 否 | 调用成功的回调函数 |
fail | function | - | 否 | 调用失败的回调函数 |
complete | function | - | 否 | 调用结束的回调函数(调用成功、失败都会执行) |
success 回调函数
参数
object res
查看示例
属性 | 类型 | 描述 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
result | string | 签约结果(如需该字段内部参数,切记先 |
|||||||||||||||||||
resultstatus | string | 签约结果码 |
|||||||||||||||||||
|
my.paysigncenter({
signstr: 'alipay_sdk=alipay-sdk-java-dynamicversionno&app_id=2019072465924554&biz_content=%7b%22sign_validity_period%22%3a%222m%22%2c%22product_code%22%3a%22cycle_pay_auth%22%2c%22external_logon_id%22%3a%2213852852877%22%2c%22personal_product_code%22%3a%22cycle_pay_auth_p%22%2c%22sign_scene%22%3a%22industry%7ccarrental%22%2c%22external_agreement_no%22%3a%22test%22%2c%22third_party_type%22%3a%22partner%22%2c%22prod_params%22%3a%7b%22auth_biz_params%22%3a%22%7b%5c%22platform%5c%22%3a%5c%22taobao%5c%22%7d%22%7d%2c%22promo_params%22%3a%22%7b%5c%22key%5c%22%3a%5c%22value%5c%22%7d%22%2c%22access_params%22%3a%7b%22channel%22%3a%22alipayapp%22%7d%2c%22merchant_process_url%22%3a%22https%3a%2f%2fwww.merchantpage.com%2findex%3fprocessid%3d2345678%22%2c%22identity_params%22%3a%7b%22user_name%22%3a%22%e5%bc%a0%e4%b8%89%22%2c%22cert_no%22%3a%2261102619921108888%22%2c%22identity_hash%22%3a%228d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92%22%2c%22sign_user_id%22%3a%222088202888530893%22%7d%2c%22agreement_effect_type%22%3a%22direct%22%2c%22user_age_range%22%3a%22%7b%5c%22min%5c%22%3a%5c%2218%5c%22%2c%5c%22max%5c%22%3a%5c%2230%5c%22%7d%22%2c%22period_rule_params%22%3a%7b%22period_type%22%3a%22day%22%2c%22period%22%3a9%2c%22execute_time%22%3a%222022-05-23%22%2c%22single_amount%22%3a10.99%2c%22total_amount%22%3a600%2c%22total_payments%22%3a12%7d%7d&charset=utf-8&format=json&method=alipay.user.agreement.page.sign&sign=i8x5tqsvx%2bj8uvikugdz5wc8lpf%2bbtotzlen2n60%2ffqp%2fgk4pubihmzq8duiyapcvjr74le3gfiuhrtrvcmnatfcylp5grwrqfwxxunafemvtsla2hubz7tnbg49o2amhzpylwgetbdsr1yl8nlsnefm4ij46evefx4pnc%2fdxhw3pvwaox6d8jijevtkawbpybg%2f%2brfms08xfmqr58hswdap7x7y7emgjefvmmtqmkhlby8bsfxrv%2bmx%2fwd5jootolohpkvfhjeuhcpcmyphljx7sppw9xannmeja9acrxhwk440y9xt8xib%2f68frfpc%2fcu14keiob5uk5amwynj3q%3d%3d&sign_type=rsa2×tamp=2022-04-22+11%3a04%3a20&version=1.0',
success: function(res) {
console.log(res);
},
fail: function(err) {
console.log(err);
}
});
{
"result": "{\"alipay_user_agreement_page_sign_response\":{\"code\":\"10000\",\"msg\":\"success\",\"app_id\":\"2017060101317939\",\"auth_app_id\":\"2017060101317939\",\"charset\":\"utf-8\",\"timestamp\":\"2017-06-27 11:40:15\",\"sign_scene\":\"industry|carrental\",\"valid_time\":\"2017-06-27 11:40:13\",\"status\":\"normal\",\"external_agreement_no\":\"test212\",\"agreement_no\":\"20170627457298962889\",\"external_logon_id\":\"13852852877\",\"alipay_logon_id\":\"138****2877\",\"invalid_time\":\"2017-08-27 11:40:13\",\"personal_product_code\":\"general_withholding_p\",\"sign_time\":\"2017-06-27 11:40:14\",},\"sign\": \"kgehosypuhpzhfrjeuwwbrmjjtlup 5ugfq2oxylraweoqksw9fokunodmegkgjk8=\",\"sign_type\":\"rsa\"}",
"resultstatus": "7000"
}
-
tip不支持在 iot 小程序中使用。
-
tip关于周期扣款的常见问题可点击 周期扣款常见问题 查看。
q:如何获取签约字符串?
调用 alipay.user.agreement.page.sign(支付宝个人协议页面签约接口)传入周期扣款约定等相关信息创建签约协议内容,将返回内容进行一次 url encode 后做为 signstr 的值传入 my.paysigncenter。示例以及详细信息可查看 创建签约协议内容。
q:唤起的开通界面显示“无效签名”,如何处理?
请检查传入的 signstr 是否正确。请对照以下内容进行自查:
传入的 signstr 需要形如:alipay_sdk=alipay-sdk-java-dynamicversionno&app_id=2019072465924554&biz_content=...
。如果是使用 sdk 获取的 signstr,得到的是这样的字符串:alipay_sdk=alipay-sdk-java-dynamicversionno&app_id=2019072465924554&biz_content=...
,需要先将这段字符串进行一次 urlencode。使用 java sdk 示例代码如下:
alipayuseragreementpagesignresponse response = alipayclient.sdkexecute(request);
string signstr = urlencoder.encode(response.getbody(), "utf-8");
q:开通失败常见原因有哪些?回调提示报错 7002 如何处理?
可能是小程序未开通 周期扣款 产品,亦可能是 alipay.user.agreement.page.sign 传参问题,请参考错误码 7002 的凯发app官方网站的解决方案。